在我的 NookController 中,我有以下内容:
var nooks = [NookController(name:"Library",coordinate:CLLocationCoordinate2D(),availability:.Empty, hours: "Open 24 hours"),
NookController(name:"Math Building",coordinate:CLLocationCoordinate2D(),availability:.Empty, hours: "Open 24 hours")]
在我的 ViewController 中,我创建了以下函数来验证我附加的新“Nook”是否重复:
func checkDuplicates() -> Bool {
if nooks.contains(NookController(name:"Library",coordinate:CLLocationCoordinate2D(),availability:.Empty,hours:"Open 24 hours")) {
return true
}
else {
return false
}
}
但是,我正在测试这个,当我实际上将一个元素添加到该数组中已经存在的数组时(它总是返回 false),它不起作用。
最佳答案
重写 NookController 类的等于运算符:
func == (left: NookController, right: NookController) -> Bool {
return left.name == right.name
}
然后这样使用它:
func checkDuplicates() -> Bool {
let nook = NookController(name:"Library",coordinate:CLLocationCoordinate2D(),availability:.Empty,hours:"Open 24 hours")
return nooks.contains(nook)
}
关于ios - Swift - 如何检查数组中是否存在具有某些属性的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40731256/