【发布时间】:2015-01-06 18:21:01
【问题描述】:
我正在使用 Swift 从我的 viewDidLoad 函数中的 API 调用填充核心数据。我的问题是每次访问页面都会再次调用服务并导致重复数据。
我尝试在检索 API 结果之前清除 Core Data 数据库,但我的代码不起作用。
所以...
- 在调用 API 之前清除表格是最好的方法吗?
- 你能告诉我一种清除有效数据的方法吗,我发现的样本没有任何作用。
这是我删除核心数据db的代码:
var managedObjectContext: NSManagedObjectContext!
let request = NSFetchRequest(entityName: "Job")
var mylist = managedObjectContext.executeFetchRequest(request, error: nil)
mylist?.removeAll(keepCapacity: false)
managedObjectContext.save(nil)
谢谢...
【问题讨论】:
-
删除 Core Data 中每条记录的最佳方法是删除数据库文件并创建一个新文件。
-
这不会降低性能,在每次访问页面时删除和重新创建数据库吗?
-
删除单个文件比删除数据库中的 10 个对象要快。而且无论如何您都必须重新插入所有对象,因此该部分的性能没有差异。
-
显然,如果您在数据库中还有其他内容,则不是一种选择,但您可以将它们拆分到一个单独的数据库中。