的优雅
我正在将我的代码升级到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>)