快速检查Core Data中的重复值

时间:2011-11-11 13:42:19

标签: objective-c core-data ios4

我需要快速检查一下CoreData中是否有重复值。我正在做一些背景同步,偶尔会有一个欺骗进入我的系统。

我有一个ManufacturerID和一个ItemID,我不能为这两个错误数据示例提供重复值:

ManufacturerID   ItemID
35               IT001
35               IT001

所以我只是想知道是否发生了这种情况并且可能获得了那些ItemID的列表,那么我需要一种方法来弄清楚如何摆脱欺骗,但这是一个良好的开端。

如果它们存在与否,我只需要一个快速的方法。

1 个答案:

答案 0 :(得分:0)

在我的应用程序中,我有一个SynchManager,使用NSoperations在后台执行同步,并且只有在不存储的情况下才会在持久sqlite存储中存储新记录。 基本上我所做的是:

  1. 执行一个获取请求,该请求检索存储的id的集合(在我的例子中,这些ID是表示URL的字符串)
  2. 在商店中插入新对象之前,我调用了一个类似“ shouldImportObject:”的方法,它基本上测试了url尚未存储在数据库中。这是一个简化的实现示例:

    for (id objectID in ids) {
      if ([objectID isEqual:objectToImport.objectID]) {
         return NO;
      }
    }
    
    return YES;