我在 plist 中有一個布林值,如下所示:

當被視為源時,它看起來像:

其內容為:
NSDictionary* configPlist = [[NSBundle mainBundle]pathForResource:@"Config" ofType:@"plist"];
BOOL shouldBeFalse = configPlist[@"WhyIsThisReturningTrue"];
但是當讀取代碼時,shouldBeFalse 是 YES。
在除錯器中,configPlist 的值為 NO:
因此,為什么在代碼運行時將 shouldBeFalse 設定為 YES?
uj5u.com熱心網友回復:
這是因為您參考的是NSNumber指標,而不是值。這有點類似于做
NSNumber * b = [NSNumber numberWithBool:NO];
if ( b )
{
NSLog(@"This should fire, b is not nil" );
}
if ( b.boolValue )
{
NSLog(@"This should NOT fire, b's value is NO" );
}
所以只需將其更改為例如 [configPlist[@"WhyIsThisReturningTrue"] boolValue]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/405064.html
標籤:
