【发布时间】:2018-02-12 06:01:26
【问题描述】:
我在核心数据实体中有几项工作,其 jobId 为 -1。我需要通过 updateMyJobs 方法中传递的对象中的正确 id 获取所有这些项目并更新 jobId。我还没有提取 NSManagedObject 类来处理核心数据(即 - 我已经检查了实体作为类定义)
这是我的代码:
func updateMyJobs(jobId: Int){
managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "DBJobsNearBy")
fetchRequest.predicate = NSPredicate(format: "jobId = '-1'")
let result = try? managedObjectContext.fetch(fetchRequest)
let resultData = result as! [DBJobsNearBy]
for object in resultData {
print(object.jobId)
if object.jobId == -1 {
object.setValue("\(jobId)", forKey: "jobId")
}
}
do {
try managedObjectContext.save()
print("saved!")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
}
我传递了一些整数值并调用上面的方法来更新这样的项目。
DatabaseHandler.shared.updateMyJobs(jobId: 222)
错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“属性值的不可接受类型:property = “jobId”;所需类型 = NSNumber;给定类型 = Swift._NSContiguousString;值 = 222。'
我正在尝试将新的 jobId 设置为核心数据实体中的相关对象。是否有必要提取 NSManagedObject 类。请有人帮我做这件事。谢谢。
【问题讨论】:
-
你是说 jobId 是一个单独实体的键,与 DBJobsNearBy 有关系,你想设置这种关系吗?如果是这样,请展示您的数据模型。
-
与 DBJobsNearBy 没有关系。我从网络上获取了多个 jobId,并希望在其 id 为 -1 的 coredata jobIds 上更新它们。
标签: ios swift core-data objectid