Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 二进制运算符'===';无法应用于类型为';Self.Element';和';任何对象';_Swift_Sequence_Swift4.1_Xcode9.3_Anyobject - Fatal编程技术网

Swift 二进制运算符'===';无法应用于类型为';Self.Element';和';任何对象';

Swift 二进制运算符'===';无法应用于类型为';Self.Element';和';任何对象';,swift,sequence,swift4.1,xcode9.3,anyobject,Swift,Sequence,Swift4.1,Xcode9.3,Anyobject,我得到以下错误:二进制运算符“==”不能应用于行中“Self.Element”和“AnyObject”类型的操作数:返回包含{$0==object} 是否有方法将对象强制转换为迭代器.Element的类型?行where Iterator.Element:AnyObject是否意味着Iterator.Element必须表示为AnyObject extension Sequence where Iterator.Element: AnyObject { /** - Paramet

我得到以下错误:二进制运算符“==”不能应用于行中“Self.Element”和“AnyObject”类型的操作数:
返回包含{$0==object}

是否有方法将
对象
强制转换为
迭代器.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 }
    }

}
感谢您对此事的帮助。

这是一个bug(实际上是一个回归)。它应该已经在Xcode 9.3.1中修复

只需从
where
子句中删除
迭代器

extension Sequence where Element: AnyObject {
    func containsObjectIdentical(to object: AnyObject) -> Bool {
        return contains { $0 === object }
    }
}
虽然序列的
Self.Element
Self.Iterator.Element
是相同的,但编译器似乎看不到传递等式

也可以考虑使方法类型安全,只与类型< <代码>元素< /> >对象比较:

extension Sequence where Element: AnyObject {
    func containsObjectIdentical(to object: Element) -> Bool {
        return contains { $0 === object }
    }
}
这是一个bug(实际上是一个回归)。它应该已经在Xcode 9.3.1中修复

只需从
where
子句中删除
迭代器

extension Sequence where Element: AnyObject {
    func containsObjectIdentical(to object: AnyObject) -> Bool {
        return contains { $0 === object }
    }
}
虽然序列的
Self.Element
Self.Iterator.Element
是相同的,但编译器似乎看不到传递等式

也可以考虑使方法类型安全,只与类型< <代码>元素< /> >对象比较:

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

@Sulthan感谢您的帮助--这似乎解决了问题。@Sulthan感谢您的帮助--这似乎解决了问题。