符合 returns "Self" 的静态函数
Conforming to a static function that returns "Self"
当尝试符合 NSItemProviderReading 时,出现以下错误:
该方法的协议定义如下:
public static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self
协议静态函数return的类型"Self",我尝试将其更改为实际class的名称,但它不符合NSItemProviderReading了。
如何 return "Self" ?
更新:
这是当我要求 Xcode 修复它时发生的情况:
追加为!自己,但随后显示 2 个错误和此警告,它看起来令人困惑,因为它似乎想恢复到以前的状态,returning class 在这种情况下的实例 NameData
协议中的 Self
要求 协议的一致性使用它们自己的类型 。因此,当您在 class 扩展中符合此要求时,您需要将方法的 return 类型中的 Self
更改为 NameData
。
extension NameData: NSItemProviderReading {
static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> NameData {
return NameData(name: "Test")
}
}
还有一件事,您需要使您的 NameData class final
.
当尝试符合 NSItemProviderReading 时,出现以下错误:
该方法的协议定义如下:
public static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self
协议静态函数return的类型"Self",我尝试将其更改为实际class的名称,但它不符合NSItemProviderReading了。
如何 return "Self" ?
更新:
这是当我要求 Xcode 修复它时发生的情况:
追加为!自己,但随后显示 2 个错误和此警告,它看起来令人困惑,因为它似乎想恢复到以前的状态,returning class 在这种情况下的实例 NameData
Self
要求 协议的一致性使用它们自己的类型 。因此,当您在 class 扩展中符合此要求时,您需要将方法的 return 类型中的 Self
更改为 NameData
。
extension NameData: NSItemProviderReading {
static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> NameData {
return NameData(name: "Test")
}
}
还有一件事,您需要使您的 NameData class final
.