Iphone 是否符合NSObject类的键值编码?
我创建了一个加载plist的单例类。当我尝试设置值时,不断出现此错误:Iphone 是否符合NSObject类的键值编码?,iphone,objective-c,cocoa-touch,plist,Iphone,Objective C,Cocoa Touch,Plist,我创建了一个加载plist的单例类。当我尝试设置值时,不断出现此错误: [setValue:forUndefinedKey::此类不符合密钥测试的密钥值编码。” 我在plist文件中有一个密钥。该键名为“test”,没有与之关联的值。我这样设置值: [[PlistManager sharedManager].plist setValue:@"the title value" forKey:@"test"]; 我查看set plist字典,并从PlistManager中看到这一点: po sel
[setValue:forUndefinedKey::
此类不符合密钥测试的密钥值编码。”
我在plist文件中有一个密钥。该键名为“test”,没有与之关联的值。我这样设置值:
[[PlistManager sharedManager].plist setValue:@"the title value" forKey:@"test"];
我查看set plist字典,并从PlistManager中看到这一点:
po self.plistDictionary
{
test = "";
}
当我将PlistManager留在调试器中时,我得到了错误。PlistManager的类型为NSObject。所以没有XIB。关于我需要做什么有什么想法吗?可能是您使用的是不可变字典而不是NSMutableDictionary吗?plist成员是NSDictionary吗?请注意,如果
plist
实际上是一个NSMutableDictionary
,那么使用setObject:forKey:
比setValue:forKey:
更有效,虽然两者都会起作用。@Barry:你确定这仍然是真的吗?我认为NSDictionary属于优化得很好的类。@Georg:我希望它能得到很好的优化,但文档中说valueForKey:/setValue:forKey:在调用objectForKey:/setObject:forKey:之前会对键进行一些额外的处理,所以它的效率至少要低一点。像往常一样,分析代码以确定差异是否重要@巴里:谢谢,我不知道。