ios - Swift - 如何检查数组中是否存在具有某些属性的元素?

标签 ios arrays swift

在我的 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/

相关文章:

arrays - 如何在 Swift 中使用区分大小写和不区分大小写的混合字符串避免 Array 中的重复条目?

ios - Swift,从字符串中获取变量名

ios - 无法更改 SKU,我应该怎么做?

ios - 如何在 iOS 上压缩 Realm DB?

javascript - 将嵌套对象组合到 JSON 数组中

java - 如何修复打印为一列的二维数组

ios - 向框架请求位置许可?

ios - Spritekit SKNode 大小百分比

ios - 更改 UISplitViewController 中 Master 的宽度

ios - VFL 表达式未按预期翻译 IB 约束