【问题标题】:Swift: How to check a core data NSSet for an objectSwift:如何检查对象的核心数据 NSSet
【发布时间】:2015-04-20 04:27:24
【问题描述】:

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

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

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

显然我可以遍历“缺席”并像这样检查每条记录:

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

但我失去了 Objective-c 解决方案的优雅

【问题讨论】:

    标签: swift contains nsset


    【解决方案1】:

    使用 Swift 3 语法,这将是:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • AnyObject? 不能传递给contains()
      • 非常感谢克里斯蒂安!我已经接近了,但无法编译 - 仍然习惯于语法......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多