我的Prefs中有一个开关,我试图从其plist文件中读取其状态为TRUE或FALSE
我一直试图用这段代码来做,
NSDictionary *plist = [[NSMutableDictionary alloc] initWithContentsOfFile:@"file.plist"];
BOOL toggle = [[plist objectForKey:@"someToggle"] boolValue];
NSString *aName;
if (toggle) { aName = [plist valueForKey:@"aText"]; }
else { aName = @"some text"; }
但它总是回归其他原因?我做错了什么?
答案 0 :(得分:0)
检查以确保[plist objectForKey:@"someToggle"]
正在返回一个对象。如果存在拼写错误,或者由于某些其他原因,plist不存在或该键的条目不存在,[plist objectForKey:@"someToggle"]
的返回值将始终为nil
,并且调用{ -boolValue
上的{1}}将始终返回nil
,这将使0
的值为toggle
。
答案 1 :(得分:0)
我认为您想要看到的第一个正是[plist objectForKey:@"someToggle"]
正在返回的内容。如果它是NSNumber认为是0的东西,它将总是评估为假。
此外,请确保该plist的值为<true/>
或<false/>
。