我有一个包含字典的阵列的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的默认值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top