在我的Common
模块(框架项目)中,具有[[低于用户默认属性的包装器,
@propertyWrapper
public class MyUserDefaultWrapper<T> {
let key: String
let defaultValue: T
public init(_ key: String, defaultValue: T) {
self.key = key
self.defaultValue = defaultValue
}
public var wrappedValue: T {
get {
let suite = UserDefaults(suiteName: "MySuite")
return suit?.object(forKey: key) as? T ?? defaultValue
}
set {
let suite = UserDefaults(suiteName: "MySuite")
suit?.set(newValue, forKey: key)
}
}
}
在我的
App
模块(主项目)中,我声明客户端使用MyUserDefaultWrapper
import Common
public class MyUserDefaultsCommon: NSObject {
@objc static let shared = MyUserDefaultsCommon()
@MyUserDefaultWrapper("yearOfBirth", defaultValue: 1980)
static var yearOfBirth: Int
}
并且使用like,
MyUserDefaultsCommon.shared.yearOfBirth = 2001
它产生构建错误。未知属性'MyUserDefaultWrapper'如何摆脱这个问题?