我使用以下方式读出了所有核心数据对象:
var fetchRequest = NSFetchRequest(entityName: "QuestionsSelectOption")
fetchRequest.predicate = NSPredicate(format: "questions = %@", currentQuestion!)
selectOptions = context.executeFetchRequest(fetchRequest, error: nil) as [QuestionsSelectOption]
现在我可以使用我的对象
了let myTestObject = selectOptions(index) as QuestionsSelectOption
但是如何在没有任何标识符的情况下更新核心数据对象?如何使用我的对象本身作为我的ID进行NSPredicate?
或者更新的最佳方法是什么(在这种情况下)" myTestObject"在斯威夫特?我可以使用索引,但我不认为这是一个好方法。
编辑:现在我使用:
request.predicate = NSPredicate(format: "self = %@", myTestObject)
var results = context.executeFetchRequest(request, error: nil) as Array
if(results.count == 1) {
let currentQuestionSelectOption = results[0] as QuestionsSelectOption
currentQuestionSelectOption.selected = selected
context.save(nil)
}
它有效 - 但是没有更简单/更好的解决方案吗?
答案 0 :(得分:0)
只需修改selected
来电myTestObject
的{{1}}属性即可。因为context.save()
(如果有的话)实际上是results[0]
。