关键值编码澄清

时间:2014-03-29 23:02:58

标签: ios objective-c key-value-coding

从Apple的文档中我发现了以下内容:

  

使用键路径设置值与使用它们设置不同   Objective-C属性。您不能使用属性表示法来设置   转换价值观。您必须使用setValue:forKeyPath:方法   前面的密钥路径字符串。

根据我的理解,我们必须拥有ivars的属性才能使用KVC。

但是从上面的段落来看,似乎没有说:

使用关键路径设置值与设置值不一样 Objective-C属性。您无法使用属性表示法进行设置 转换价值。

有人可以向我解释原因吗?也许我错过了一些东西,因为我的理解是我们必须拥有使用KVC的属性。

1 个答案:

答案 0 :(得分:1)

  

根据我的理解,我们必须拥有ivars的属性才能使用KVC。

这是不正确的。 KVC将使用属性生成的访问器方法或其他(适当命名的)访问器方法(如果存在),但它们不是必需的。如果它们不存在,KVC将尝试直接访问实例变量。

检查this Apple ref,了解KVC如何搜索要更新的密钥。