我正在尝试重新编译 SwiftyUserDefaults(https://github.com/radex/SwiftyUserDefaults)以添加 Carthage 支持,但在尝试编译时我看到以下错误:
'NSUserDefaults' 中不明确的类型名称 'Proxy'
对于以下代码
public func ?= (proxy: NSUserDefaults.Proxy, @autoclosure expr: () -> Any) {
if !proxy.defaults.hasKey(proxy.key) {
proxy.defaults[proxy.key] = expr()
}
}
和
在这种情况下,“代理”对于类型查找是不明确的
为了
public subscript(key: String) -> Proxy {
return Proxy(self, key)
}
据我了解-问题出在类代理上,它嵌入在扩展中。
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
}
// ..................................
}
}
我已经查找了文档,但没有任何参考可以在扩展中使用类。
这样对吗?