我正处于测试版6,不确定这是一个bug还是我应该在Swift语言中小心的东西.
我有一个class B声明的对象数组class A.在A中,我有一个函数来查看数组中是否存在某个对象.contains除非我在B类中继承了NSObject,否则使用函数会失败并出现编译器错误.那么这里的问题是什么,我应该总是从NSObject继承吗?
class B {
....
}
class A {
var arr: Array<B> = Array<B>()
func check(obj: B) -> Bool {
return contains(arr, obj)
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
为了能够被包含,你的类必须实现协议Equatable.当您从NSObject继承时,这是为您实现的.如果你想自己做,你可以这样做:
func == (lhs: B, rhs: B) -> Bool {
return lhs === rhs
}
class B : Equatable {
}
Run Code Online (Sandbox Code Playgroud)
有关Equatable的更多信息,请访问:https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/Equatable.html
| 归档时间: |
|
| 查看次数: |
662 次 |
| 最近记录: |