2010-10-10 126 views
7

此問題是this question的後續處理。我正在使用在http://code.google.com/p/json-framework/處找到的JSON庫。json核心數據


我的核心數據對象模型與自身有多對多的關係,因此,它的子對象有一個集合。在JSON中,該集合通過對象ID數組表示。沒有什麼特別的。

當我打電話與物體的結構,我從解析JSON字符串獲得託管對象setValuesForKeysWithDictionary,我收到此異常:

由於未捕獲的異常 「NSInvalidArgumentException」的

***終止應用程序,原因: ' - [__ NSArrayM minusSet:]:無法識別 選擇發送到實例0x6c7b440'

如果有人能解釋爲什麼,我所有的耳朵。我也收到來自未定義鍵的一些異常,但這是可以理解的(JSON包含額外的字段)並且完全可管理。

現在我的問題是:

我在這裏缺少的東西,因爲在其它問題,誰回答OP沒有報告這個問題的人。我可以修補它,並通過覆蓋setValuesForKeysWithDictionary來處理錯誤的操作,並在關鍵是關係時傳遞,但這使得代碼很不通用,我非常喜歡。

回答

5

我認爲問題在於您的JSON反序列化正在創建數組,但託管對象一對多關係由集合表示。即你需要NSSet而不是NSArray。您可以通過執行[NSSet setWithArray:theArray]將NSArray轉換爲NSSet。