【发布时间】:2017-01-29 07:45:09
【问题描述】:
我有一个自定义结构...
struct MyStruct {
let viewController: UIViewController
let view:UIView
init(viewController:UIViewController) {
self.viewController = viewController
}
}
我有一个数组,然后我想检查这个数组是否包含特定的结构...
let aStruct = someStruct
if structArray.filter { $0 == aStruct } {
print("do stuff")
}
但我收到错误二元运算符“==”不能应用于两个“MyStruct”操作数...首先,为什么我不能以这种方式过滤结构...其次,如果不是这样,我应该如何搜索数组...
提前致谢
【问题讨论】:
-
你
struct是否符合Equatable协议。 -
请注意,即使您将
MyStruct与Equatable一致,也不能说if structArray.filter { $0 == aStruct } {...}- 请改用contains(_:)。