Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 是否符合NSObject类的键值编码?_Iphone_Objective C_Cocoa Touch_Plist - Fatal编程技术网

Iphone 是否符合NSObject类的键值编码?

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

我创建了一个加载plist的单例类。当我尝试设置值时,不断出现此错误:

[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:之前会对键进行一些额外的处理,所以它的效率至少要低一点。像往常一样,分析代码以确定差异是否重要@巴里:谢谢,我不知道。