Nuz*_*ari 5 core-data ios swift3
从服务器下载数据后,我正在尝试将数据保存在Core Data中.根据Apple文档,我使用父子上下文来执行保存操作,如下所示:
fileprivate func saveDataInLocalDataBase(_ mList: [Info]?) {
if mList != nil {
let mainContext = self.managedObjectContext
let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
privateContext.parent = mainContext
privateContext.perform {
for mObj in mList! {
let entity = NSEntityDescription.entity(forEntityName: entityName, in:privateContext)
let managedObj = NSManagedObject(entity: entity!, insertInto:privateContext) as! NSManagedObject
mObj.populateFieldsForManagedObject(managedObj)
}
do {
try privateContext.save()
mainContext?.performAndWait {
do {
try mainContext?.save()
} catch {
fatalError("Failure to save context: \(error)")
}
}
} catch {
fatalError("Failure to save context: \(error)")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,有时当我尝试从核心数据中获取数据时,它会返回0个对象.这意味着我的数据不会保存在Core Data中.任何人都可以知道问题是什么,即使我的服务返回正确的数据.
注意:此问题随机发生.
是否有可能当应用程序尝试在后台保存数据并且用户最小化应用程序时,私有上下文无法在应用程序处于后台时保存数据?
提前致谢.
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |