2012-07-06 52 views

回答

1

setValue:forKey:方法适用于支持Key Value Coding的所有内容。它允许您为由字符串标识的属性设置值。在这种特殊情况下,该字符串来自解析器完成处理的XML元素的名称,并且该值来自相应元素的文本。

KVC技巧允许您使用XML解析器设置对象的值,而不用硬编码对象属性或方法的名称。举例来说,如果你有XML的像这样的

<book> 
    <author>Kernighan and Ritchie</author> 
    <title>The C Programming Language</title> 
</book> 

和KVC兼容BookNSString*性质authortitle片段,解析器将能够处理属性的XML和设定值不知道任何关于您的XML结构或您的Book类的结构。

+0

嗯,谢谢,我认为这将有所帮助。 – 2012-07-06 14:16:55

+0

这是有道理的。但是,如果没有它可以访问对象属性,为什么要使用KVC呢? – guitarflow 2012-07-06 14:18:13

+0

@guitarflow如果你添加了一个新的属性,比如说'publisher'给你的类并且添加了新的标签到你的XML中,你将能够运行你不知道'publisher'的旧的基于KVC的程序而不需要重新编译。 – dasblinkenlight 2012-07-06 14:20:03