我正在使用
CoreData
将代表对象的字典数组 ([[String: Any]]
) 插入到 PersistentStore
中。插入对象时,我收到错误The operation couldn’t be completed. (Cocoa error 1605.)
。打印到控制台的下一行是:
Error Domain=NSCocoaErrorDomain Code=1605 "(null)" UserInfo={NSValidationErrorKey=date, NSValidationErrorObject=Bot}
我正在从
JSON
对象创建字典数组,该对象具有比 ManagedObject
中相应的 CoreData
更多的键。我可以将 NSBatchInsertRequest
与不在相应 ManagedObject
中的键一起使用吗?
这是代码:
let batch: [[String: Any]] = getBatch()
let request = NSBatchInsertRequest(entity: Bot.entity(), objects: batch)
let insertResult = try self?.managedObjectContext.execute(request) as? NSBatchInsertResult
let result = insertResult?.result as? Bool
print(result?.description ?? "")
从 persistenceStoreCoordinator 获取实体描述,而不是
Bot.entity()
。
let botEntity: NSEntityDescription! = self?.managedObjectContext.persistentStoreCoordinator!.managedObjectModel.entitiesByName["Bot"]
let batch: [[String: Any]] = getBatch()
let request = NSBatchInsertRequest(entity: botEntity, objects: batch)
let insertResult = try self?.managedObjectContext.execute(request) as? NSBatchInsertResult
let result = insertResult?.result as? Bool
print(result?.description ?? "")