Objc:从plist获得bool的状态

时间:2014-05-02 21:25:53

标签: ios objective-c

我的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"; }

但它总是回归其他原因?我做错了什么?

2 个答案:

答案 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/>