Ale*_*sev 5 ios swift swiftyuserdefaults
我正在尝试重新编译 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()
}
}
Run Code Online (Sandbox Code Playgroud)
和
在这种情况下,“代理”对于类型查找是不明确的
为了
public subscript(key: String) -> Proxy {
return Proxy(self, key)
}
Run Code Online (Sandbox Code Playgroud)
据我了解 - 问题出在类代理上,它嵌入在扩展中。
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
}
// ..................................
}
}
Run Code Online (Sandbox Code Playgroud)
我已经查找了文档,但没有任何参考资料表明可以在扩展中使用类。
这样对吗?
SwiftlyUserDefaults.swift您在目标 SwiftlyUserDefaultsTests 中编译该文件两次:一次在SwiftlyUserDefaults.framework(这是 SwiftlyUserDefaultsTests 的依赖项)中,一次在“编译源”构建阶段。
只需SwiftlyUserDefaults.swift从 SwiftlyUserDefaultsTests 目标的“编译源”构建阶段中删除该文件,就可以开始了。

| 归档时间: |
|
| 查看次数: |
2930 次 |
| 最近记录: |