我有一個直接轉發實例變量的對象。有些是NSString的,有些是無符號整數,等我的印象鍵 - 值編碼是在編寫腳本,我可以寫代碼,如下面的下:鍵值編碼及其腳本編寫能力
id key, value;
key = [[attributes objectAtIndex:j] name];
value = [[attributes objectAtIndex:j] stringValue];
[obj setValue:value forKey:key];
的原因,我使用stringValue的位置和名稱我正在使用TouchXML並從XML提要構建對象。
上面的代碼崩潰,如果我試圖分配任何東西到一個整數。如果我將unsigned int更改爲NSString的實例,則不會有任何運行時崩潰。據我的理解,Key-Value編碼足夠聰明以檢測這些問題。
我可能的解決方案是什麼?我怎樣才能儘可能多地抽象出來,這樣我就可以在許多不同的類上運行相同的方法,這些類都有自己的實例變量?
是最優雅的方法來真正覆蓋我的setter並使用NSNumber將字符串轉換爲類型int,我認爲這已經由KVC處理?