gpt4 book ai didi

swift - 我是否应该始终从 Swift 类中的 NSObject 继承而不丢失某些功能

转载 作者:搜寻专家 更新时间:2023-11-01 05:54:27 28 4
gpt4 key购买 nike

我正在使用 beta 6,不确定这是一个错误还是我应该在 Swift 语言中注意的问题。

我有一个在 class A 中声明的 class B 对象数组。在 A 内部,我有一个函数可以查看数组中是否存在某个对象。除非我在下面的示例中使用 contains 函数失败并出现编译器错误在类 B 中继承 NSObject。那么这里有什么问题,我应该始终从 NSObject 继承吗?

class B {
....
}

class A {
var arr: Array<B> = Array<B>()

func check(obj: B) -> Bool {
return contains(arr, obj)
}
}

最佳答案

为了被contains 使用,您的类必须实现Equatable 协议(protocol)。当您从 NSObject 继承时,它会为您实现。如果你想自己做,你可以这样做:

func == (lhs: B, rhs: B) -> Bool {
return lhs === rhs
}

class B : Equatable {
}

在这里查看更多关于 Equatable 的信息:https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/Equatable.html

关于swift - 我是否应该始终从 Swift 类中的 NSObject 继承而不丢失某些功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25705637/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com