当尝试符合NSItemProviderReading时,我收到以下错误:
此方法的协议定义如下:
public static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self
协议静态函数返回类型" Self",我试图将其更改为实际类的名称,但随后它不再符合NSItemProviderReading。
如何回归" Self" ?
它附加为!自我,但后来显示2个错误和这个警告,它看起来很混乱,因为它似乎想要恢复到以前的状态,在这种情况下返回类的实例NameData
答案 0 :(得分:5)
Self
要求协议的 一致性使用自己的类型 。因此,当您在类扩展中对此进行符合时,您需要在方法的返回类型中将Self
更改为NameData
。
extension NameData: NSItemProviderReading {
static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> NameData {
return NameData(name: "Test")
}
}
还有一件事,你需要制作你的NameData类final
。