1
在下面的教程中,我查看了設置值和相應的'鍵'的位置。NSXMLParser,數值和鍵的設置
[aBook setValue:currentElementValue forKey:elementName];
我的一個問題是,這種方法是字典,而不是NSArrays。
在下面的教程中,我查看了設置值和相應的'鍵'的位置。NSXMLParser,數值和鍵的設置
[aBook setValue:currentElementValue forKey:elementName];
我的一個問題是,這種方法是字典,而不是NSArrays。
setValue:forKey:
方法適用於支持Key Value Coding的所有內容。它允許您爲由字符串標識的屬性設置值。在這種特殊情況下,該字符串來自解析器完成處理的XML元素的名稱,並且該值來自相應元素的文本。
KVC技巧允許您使用XML解析器設置對象的值,而不用硬編碼對象屬性或方法的名稱。舉例來說,如果你有XML的像這樣的
<book>
<author>Kernighan and Ritchie</author>
<title>The C Programming Language</title>
</book>
和KVC兼容Book
類NSString*
性質author
和title
片段,解析器將能夠處理屬性的XML和設定值不知道任何關於您的XML結構或您的Book
類的結構。
嗯,謝謝,我認爲這將有所幫助。 – 2012-07-06 14:16:55
這是有道理的。但是,如果沒有它可以訪問對象屬性,爲什麼要使用KVC呢? – guitarflow 2012-07-06 14:18:13
@guitarflow如果你添加了一個新的屬性,比如說'publisher'給你的類並且添加了新的標籤到你的XML中,你將能夠運行你不知道'publisher'的舊的基於KVC的程序而不需要重新編譯。 – dasblinkenlight 2012-07-06 14:20:03