Swift 符合返回“的静态函数”;“自我”;

Swift 符合返回“的静态函数”;“自我”;,swift,swift-protocols,Swift,Swift Protocols,在尝试符合NSItemProviderReading时,出现以下错误: 此方法的协议定义如下: public static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self 协议静态函数返回类型“Self”,我尝试将其更改为实际类的名称,但是它将不再符合NSItemProviderReading 如何回归“自我” 更新: 这就是我要求Xcode修复它时发生的情况: 它

在尝试符合NSItemProviderReading时,出现以下错误:

此方法的协议定义如下:

public static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self
协议静态函数返回类型“Self”,我尝试将其更改为实际类的名称,但是它将不再符合NSItemProviderReading

如何回归“自我”

更新: 这就是我要求Xcode修复它时发生的情况:


它附加为!Self,但随后显示了2个错误和此警告,看起来很混乱,因为它似乎想恢复到以前的状态,在本例中返回类的实例NameData

Self
在协议中要求协议的一致性使用自己的类型。因此,当在类扩展中符合此条件时,需要在方法的返回类型中将
Self
更改为
NameData

extension NameData: NSItemProviderReading {
    static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> NameData {
        return NameData(name: "Test")
    }
}

还有一件事,你需要使你的NameData类成为final类,这可能与尝试使NameData成为final类是重复的,就是final子句!