这是问题所在。
我使用MagicalRecord处理核心数据。
我有一个名为NSManagedObject
的{{1}}。
首先,App会从WebService获取所有Category
,现在是Category
。
比获得30 items
时,应用会首先清除Response
并添加Category
一个接一个,比保存所有更改。
30 items
[Category truncateAll];
for...loop...
[Category importFromObject:categoryDictionayFromJson];
[[NSManagedObjectContext rootSavingContext] saveToPersistentStoreAndWait];
现在是30 items
。
然后,[Category findAll]
稍后将在Category
中使用。
Another ViewController
我现在的问题是,当App使用[Category findAll];
时,它变为Category
或31 items
或32
...
对我来说很陌生。
我确定服务器返回34
,但额外的项目看起来像服务器上的正确数据,就像这次刚从服务器返回的正确记录一样。
我只是想知道我能为下一个找到问题或解决问题做些什么。
这是我尝试过的东西:
在每个步骤中调试30 items
以跟踪发生更改的位置。没有幸运。
将MagicalRecord更新为最新版本。没有幸运。
我能做什么,或者我想念什么?
更新
调试后更深入。我找到了根本原因:
[Category findAll]
还有另一个请求,而且会返回Another ViewController
的列表,而这个Object
包含名为Object
的属性,这种关系会如果之前Category
未保存Category
,则会额外保存Category
。所以,非常聪明,对。
仅仅因为我只需要将此Category
用作Part of ALL
,而魔法记录将帮助我导入All
。
更新,已修复
基于根本原因,我通过为isFunctinoOneUsed
包含另一个名为Object
的属性来修复它,并在第一次请求获取它时将其设置为YES。并且要使用Another ViewController
,只需添加条件[NSPredicate predicateWithFormat:@"SELF.isFunctinoOneUsed = YES"]
即可获得所需的结果。