CoreData 使用额外键批量插入(Cocoa 错误 1605。)

问题描述 投票:0回答:1

我正在使用

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 ?? "")
ios swift core-data batch-processing nsmanagedobjectcontext
1个回答
0
投票

从 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 ?? "")
© www.soinside.com 2019 - 2024. All rights reserved.