2008-12-18 32 views
5

當我開始一個簡單的iPhone應用程序時,我有一個直接的方法將XML片斷的鍵/值對轉換成NSDictionary。問題是,我需要將那些曾經將我的UITableView填充到自定義類中的NSDictionary實例,因爲它們需要行爲和額外的複雜性。現在的問題是,現在爲了讓我實例化一個對象,並使用來自Web服務的鍵/值對填充其實例變量變得更加困難。我不能再把它放入一個遍歷XML的方法,並使用KVC來設置它的實例變量。鍵值編碼

還有什麼其他解決方案?

回答

8

您仍然可以在您的自定義類上使用鍵值編碼方法,只要您適當地命名變量即可,這裏沒有差別。儘管如此,當我使用XML時,通常最終會測試每個節點名稱或創建一個鍵查找表,因爲我正在使用的數據源中的名稱不是關鍵值編碼兼容。如果您可以控制數據源,則可以繼續使用setValue:forKey:

我建議您閱讀this guide關於鍵值編碼,如果你還沒有。它是Cocoa中許多優秀工具的基礎。

1

調查NSCoding。您可以使用NSCoding協議將您的對象,屬性和所有數據保存爲數據。

一旦您的對象符合NSCoding,就可以使用NSKeyedArchiver將整個對象數組歸檔。

請注意,如果您有大量的對象,這可能在加載和保存過程中顯着影響應用程序在iPhone上的性能。

+0

8月份,NSCoding看起來很不錯。我擔心使用它會導致性能損失。我的對象通常包含5/6實例變量,基本數據類型。我不知道需要多少錢才能保護我的應用程序。 – Coocoo4Cocoa 2008-12-18 20:47:34

+0

雖然他正在使用XML Web服務,但並未詢問如何將其對象保存到數據源。 – 2008-12-18 20:48:29