gpt4 book ai didi

swift - 二元运算符 '===' 不能应用于类型 'Self.Element' 和 'AnyObject' 的操作数

转载 作者:行者123 更新时间:2023-11-28 11:59:44 27 4
gpt4 key购买 nike

我收到以下错误:二元运算符“===”不能应用于类型为“Self.Element”和“AnyObject”的操作数行:return contains { $0 === 对象 }.

有没有办法将 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 { $0 === object }
}

}

感谢您对此事的任何帮助。

最佳答案

这是一个错误 SR-7275 (实际上是回归)。它应该已经在 Xcode 9.3.1 中得到修复。

只需从 where 子句中删除 Iterator:

extension Sequence where Element: AnyObject {
func containsObjectIdentical(to object: AnyObject) -> Bool {
return contains { $0 === object }
}
}

虽然 SequenceSelf.ElementSelf.Iterator.Element 是相同的,但编译器似乎看不到传递相等性。

此外,您可能会考虑使方法类型安全,并且只与 Element 类型的对象进行比较:

extension Sequence where Element: AnyObject {
func containsObjectIdentical(to object: Element) -> Bool {
return contains { $0 === object }
}
}

关于swift - 二元运算符 '===' 不能应用于类型 'Self.Element' 和 'AnyObject' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50326598/

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