如何使用Object本身作为ID获取Core Data Object?

时间:2014-09-05 11:59:05

标签: ios swift

我使用以下方式读出了所有核心数据对象:

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)
    }

它有效 - 但是没有更简单/更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

只需修改selected来电myTestObject的{​​{1}}属性即可。因为context.save()(如果有的话)实际上是results[0]