MagicalRecord truncateAll同时导入ImportFromObject,并得到错误的结果

时间:2014-02-09 15:22:08

标签: ios core-data magicalrecord

这是问题所在。

我使用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]; 时,它变为Category31 items32 ... 对我来说很陌生。

我确定服务器返回34,但额外的项目看起来像服务器上的正确数据,就像这次刚从服务器返回的正确记录一样。

我只是想知道我能为下一个找到问题或解决问题做些什么。

这是我尝试过的东西:

  1. 在每个步骤中调试30 items以跟踪发生更改的位置。没有幸运。

  2. 将MagicalRecord更新为最新版本。没有幸运。

  3. 我能做什么,或者我想念什么?

    更新

    调试后更深入。我找到了根本原因:

    [Category findAll]还有另一个请求,而且会返回Another ViewController的列表,而这个Object包含名为Object的属性,这种关系会如果之前Category未保存Category,则会额外保存Category。所以,非常聪明,对。

    仅仅因为我只需要将此Category用作Part of ALL,而魔法记录将帮助我导入All

    更新,已修复

    基于根本原因,我通过为isFunctinoOneUsed包含另一个名为Object的属性来修复它,并在第一次请求获取它时将其设置为YES。并且要使用Another ViewController,只需添加条件[NSPredicate predicateWithFormat:@"SELF.isFunctinoOneUsed = YES"]即可获得所需的结果。

0 个答案:

没有答案