在api调用之前从Core Data表中删除数据不能在swift中工作

时间:2014-11-10 12:32:59

标签: ios swift

我使用Swift在我的viewDidLoad函数中填充来自API调用的核心数据。我的问题是每次访问页面都会再次调用服务并导致重复数据。

我在检索API结果之前尝试清除Core Data数据库,但我的代码无效。

因此...

  1. 在调用API之前清除表是最好的方法吗?
  2. 您能否告诉我一种清除有效数据的方法,我发现的样本没有做任何事情。
  3. 这是我删除核心数据db的代码:

    var managedObjectContext: NSManagedObjectContext!
    let request = NSFetchRequest(entityName: "Job")
    var mylist = managedObjectContext.executeFetchRequest(request, error: nil)
    mylist?.removeAll(keepCapacity: false)
    managedObjectContext.save(nil)
    

    ...谢谢

1 个答案:

答案 0 :(得分:1)

目前,您只是从返回的数组中删除它们。您需要从Core Data中删除数组中的每个项目。

...
for item: AnyObject in mylist {
   managedObjectContext.deleteObject(item as NSManagedObject)
}
managedObjectContext.save(nil)