【问题标题】:How to check a related entity exists in Core Data?如何检查 Core Data 中是否存在相关实体?
【发布时间】:2015-09-02 16:04:02
【问题描述】:

所以,我需要检查一个实体是否存在,如果没有创建它。

目前,我的核心数据数据库由 JSON 填充,我得到一个 Work 对象,它可能包含也可能不包含 Survey 对象。如果它包含调查,我会填充调查字段,然后将其附加到我的Work,如下所示:

let newWorkObj = NSEntityDescription.insertNewObjectForEntityForName("Work", inManagedObjectContext: moc) as! Work
let newSurveyObj = NSEntityDescription.insertNewObjectForEntityForName("Survey", inManagedObjectContext: moc) as! Survey

//newSurvey.field = obj["field"].string etc...

newWorkObj.survey = newSurvey

然后,稍后,我需要检查work.survey 是否存在...我该怎么做?

我已经尝试在实体中添加一个isPresent 字段,然后意识到应用程序会在它进行检查之前崩溃(实体必须存在才能在其中检查任何内容...)

希望我能做类似的事情

 if work.survey.EXISTS  {

     //sit back and chill

 }else{

     //make a new entity

 }

我所看到的一切都假设我正在搜索多个对象并且喜欢使用NSPredicate,肯定有更简单的方法来检查实体是否存在?

【问题讨论】:

    标签: ios swift core-data


    【解决方案1】:

    假设您的 Work 实体与您的 Survey 实体是一对一的关系,并且您将其定义为:

    @NSManaged var survey: Survey?
    

    在您的 Work 类中,您应该能够通过以下方式检查它是否已设置:

    if work.survey != nil {
        // sit back and chill
    } else {
       // make a new entity
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2021-12-11
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多