二元运算符“===”不能应用于 'Self.Element' 和 'AnyObject' 类型的操作数
Binary operator '===' cannot be applied to operands of type 'Self.Element' and 'AnyObject'
我收到以下错误:二元运算符 '===' 不能应用于行上 'Self.Element' 和 'AnyObject' 类型的操作数: return contains { [=13=] === object }
.
有没有办法将 object
转换为 Iterator.Element
的类型? where Iterator.Element: AnyObject
行是否意味着 Iterator.Element
必须表示为 AnyObject
?
extension Sequence where Iterator.Element: AnyObject {
/**
- Parameter object:
*/
func containsObjectIdentical(to object: AnyObject) -> Bool {
return contains { [=12=] === object }
}
}
感谢您对此事的任何帮助。
这是一个错误 SR-7275(实际上是回归)。它应该已经在 Xcode 9.3.1.
中修复
只需从 where
子句中删除 Iterator
:
extension Sequence where Element: AnyObject {
func containsObjectIdentical(to object: AnyObject) -> Bool {
return contains { [=10=] === object }
}
}
虽然 Self.Element
和 Self.Iterator.Element
对于 Sequence
是相同的,但编译器似乎看不到传递相等性。
此外,您可以考虑使方法类型安全,并且只与类型 Element
:
的对象进行比较
extension Sequence where Element: AnyObject {
func containsObjectIdentical(to object: Element) -> Bool {
return contains { [=11=] === object }
}
}
我收到以下错误:二元运算符 '===' 不能应用于行上 'Self.Element' 和 'AnyObject' 类型的操作数: return contains { [=13=] === object }
.
有没有办法将 object
转换为 Iterator.Element
的类型? where Iterator.Element: AnyObject
行是否意味着 Iterator.Element
必须表示为 AnyObject
?
extension Sequence where Iterator.Element: AnyObject {
/**
- Parameter object:
*/
func containsObjectIdentical(to object: AnyObject) -> Bool {
return contains { [=12=] === object }
}
}
感谢您对此事的任何帮助。
这是一个错误 SR-7275(实际上是回归)。它应该已经在 Xcode 9.3.1.
中修复只需从 where
子句中删除 Iterator
:
extension Sequence where Element: AnyObject {
func containsObjectIdentical(to object: AnyObject) -> Bool {
return contains { [=10=] === object }
}
}
虽然 Self.Element
和 Self.Iterator.Element
对于 Sequence
是相同的,但编译器似乎看不到传递相等性。
此外,您可以考虑使方法类型安全,并且只与类型 Element
:
extension Sequence where Element: AnyObject {
func containsObjectIdentical(to object: Element) -> Bool {
return contains { [=11=] === object }
}
}