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

Swift: How to check a core data NSSet for an object

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

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

"absences" 是 "Absence" 记录的 NSSet,它是我的 "Employee" 记录的一部分。

显然我可以遍历 "absences" 并像这样检查每条记录:

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)

with Swift 3 语法为:

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