我有一个加载到我的Xcode项目中的.plist文件。我在测试时已成功将其放入iPhone的文档目录中。当我将内容转储到NSMutableDictionary,并尝试枚举它时,我得到EXC_BAD_ACCESS崩溃。它们的键都具有与其值相关联的BOOL。我做错了什么?
我的代码现在:
for (id key in achDict) {
NSLog(@"Achievement:%@ done:%@", key, [[achDict objectForKey:key] boolValue]);
}
这总是在崩溃中返回EXC_BAD_ACCESS。
答案 0 :(得分:2)
你的NSLog期待两个对象,但你传给它一个字符串'key'和一个Integer。 Bool Value不是Object,它返回一个Integer值(0表示False,1表示True)。 %@
用于Objective C Objects。而是使用%d
来获取整数值,例如C布尔值。
将您的NSLog语句更改为:
NSLog(@"Achievement:%@ done:%d", key, [[achDict objectForKey:key] boolValue]);
Apple的String Programming Guide有一个关于String Modifiers的有用部分