我很难理解为什么实现协议扩展的下面的代码在正常构建上工作但在归档上不起作用。这段代码片段最初来自[Kingfisher],我试图用我的项目编译它而不用它作为框架。据我所知,代码看起来很好,它实际上适用于正常构建甚至完美运行。但是当我试图归档项目时,编译器抱怨Image
,ImageView
和Button
没有确认协议,我完全迷失了,无法弄清楚原因。我很感激任何建议。
protocol KingfisherCompatible {
associatedtype CompatibleType
var kf: CompatibleType { get }
}
extension KingfisherCompatible {
var kf: Kingfisher<Self> {
get { return Kingfisher(self) }
}
}
extension Image: KingfisherCompatible { }
#if !os(watchOS)
extension ImageView: KingfisherCompatible { }
extension Button: KingfisherCompatible { }
#endif