模糊的types名称错误

我试图重新编译SwiftyUserDefaults( https://github.com/radex/SwiftyUserDefaults )添加迦太基支持,但试图编译我看到以下错误:

“NSUserDefaults”中含糊不清的types名称“Proxy”

以下代码

public func ?= (proxy: NSUserDefaults.Proxy, @autoclosure expr: () -> Any) { if !proxy.defaults.hasKey(proxy.key) { proxy.defaults[proxy.key] = expr() } } 

在这种情况下,“代理”对于types查询是不明确的

对于

 public subscript(key: String) -> Proxy { return Proxy(self, key) } 

据我所知 – 问题是与类代理,这是embedded在扩展。

 public extension NSUserDefaults { class Proxy { private let defaults: NSUserDefaults private let key: String private init(_ defaults: NSUserDefaults, _ key: String) { self.defaults = defaults self.key = key } // MARK: Getters public var object: NSObject? { return defaults.objectForKey(key) as? NSObject } // .................................. } } 

我查找过文档,但没有任何引用可以用于扩展。

这样对吗?

您在SwiftlyUserDefaults.swift两次编译SwiftlyUserDefaults.swift文件:一次在SwiftlyUserDefaults.framework (这是SwiftlyUserDefaultsTests的一个依赖项)中,一次在“编译源代码”编译阶段。

只需从SwiftlyUserDefaultsTests目标的“编译源码”构build阶段中删除SwiftlyUserDefaults.swift文件即可。

在这里输入图像说明