符合 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.