从plist文件还原一个NSDictionary内BOOL
-
26-09-2019 - |
题
我有一个包含字典的阵列的plist文件。这里是其中之一:
佛瑞德字典搜索 名称弗雷德结果 isMale [框被选中]
所以,现在我初始化我的Person对象与我从plist文件读取字典:
-(id) initWithDictionary: (NSDictionary *) dictionary {
if (self = [super init])
self.name = [dictionary valueForKey: @"Name"];
self.isMale = ????
}
如何玩完上述代码,以便self.isMale被设置为YES,如果框在plist文件检查,并且NO如果它不是。优选地还设置为NO,如果在字典中没有键isMale。
解决方案
BOOL值通常储存在OBJ-C的容器裹着的NSNumber对象。如果是这样,你的情况,那么你可以使用检索bool值:
self.isMale = [[dictionary objectForKey:@"isMale"] boolValue];
其他提示
弗拉基米尔是正确的,我只是要附和,说这是好事,检查从plist中存在的价值以及,如果不将其设置为默认值通常。
是这样的:
id isMale = [dictionary valueForKey:@"isMale"];
self.isMale = isMale ? [isMale boolValue] : NO;
哪些检查是否为键“isMale”的值在词典中存在。如果是的话那么它从它得到boolValue。如果它不那么它设置self.isMale到NO的默认值。
不隶属于 StackOverflow