Swift:如何检查一个对象的核心数据NSSet



我正在将我的代码升级到Swift,并被困在如何复制我的objective-c代码上,以检查1:many关系中的现有记录,给定其中一个字段

    BOOL existingRecord = [[self.employeeRecord.absences valueForKey:@"id"] containsObject:myId];

"缺勤"是NSSet的"缺勤"记录,它是我的"员工"记录的一部分。

很明显,我可以循环浏览"缺席",并像这样检查每条记录:

if let allAbsences = self.employeeRecord.absences {
      for checkAbsence in allAbsences {
           if (checkAbsence.id == myId) {
                existingRecord = true
                break
           }
       }
}

但是我失去了objective-c解决方案

的优雅

Swift也有这些优雅的方法。)只需在swift中使用与在objective-c中相同的方法:

var existingRecord = self.employeeRecord.absences.valueForKey("id").containsObject(myId)

Swift 3语法为:

(<parent>.<set>?.value(forKey: "<identifier>") as AnyObject).contains(<identifier>)

最新更新