Ios CoreData-检查数据库中是否存在对象

Ios CoreData-检查数据库中是否存在对象,ios,core-data,Ios,Core Data,我有带表视图和FetchResultsController的viewController。ViewController从web下载数据,然后将其保存到CoreData。每次发射都会下载。我需要某种方法来比较我从网上下载的信息和只保存到CoreData的信息 我该怎么做 我有一个想法,通过fetchedResultsController.performFetch()获取所有对象,然后将它们分配到数组,但我不知道如何迭代该数组(它是我们[AnyObject]) 也许还有更简单的方法?您可以在“获取结

我有带表视图和FetchResultsController的viewController。ViewController从web下载数据,然后将其保存到CoreData。每次发射都会下载。我需要某种方法来比较我从网上下载的信息和只保存到CoreData的信息

我该怎么做

我有一个想法,通过
fetchedResultsController.performFetch()
获取所有对象,然后将它们分配到数组,但我不知道如何迭代该数组(它是我们[AnyObject])


也许还有更简单的方法?

您可以在“获取结果”控制器上使用
获取对象。它是一个
[AnyObject]?
数组,但您可以使用以下命令将其强制转换为您的对象类型

if let myObjects = fetchedResultsController.fetchedObjects as? [MyObjectType] {
    for object in myObjects {
        // do some comparison to see if the object is in your downloaded data
    }
}
获取对象的另一种方法是创建一个
NSFetchRequest
,并在托管对象上下文上使用
executeFetchRequest

我需要执行几个步骤,以便将核心内容与自定义对象数组进行比较

1) 创建空数组

var arrayOfReposOnDisk : [RepoObject] = []
2) 从CoreData获取对象

let fetchedData = self.fetchedResultsController.fetchedObjects
3) 迭代
fetchedData
并将键值的每个值转换为我的自定义对象

for i in 0 ..< fetchedData!.count  {

        let object = fetchedData![i]

        let name = object.valueForKey("name") as! String
        let description = object.valueForKey("description") as! String
        let authorName = object.valueForKey("avatarURL") as! String
        let avatarURL = object.valueForKey("authorName") as! String
        let forks = object.valueForKey("forks") as! Int
        let watches = object.valueForKey("watches") as! Int

        let repoObject = RepoObject(name: name, description: description, authorName: authorName, avatarURL: avatarURL, forks: forks, watches: watches)

        arrayOfItemsOnDisk.append(repoObject)
    }

你下载的总是赢,还是本地版本的对象赢?所有对象都有唯一的标识符吗?
if arrayOfReposOnDisk.contains ({ $0.name == name }) {
       print("There is the same name in json as in CoreData, doing nothing")
   } else {
       self.insertNewObject(name, descriptionText: description, avatarURL: avatarURL, authorName: authorName, forks: forks, watches: watches)
}