2012-07-06 35 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