2010-10-10 144 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。