In my Common
module (framework project) have below property wrapper for user defaults,
@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 suite?.object(forKey: key) as? T ?? defaultValue
}
set {
let suite = UserDefaults(suiteName: "MySuite")
suite?.set(newValue, forKey: key)
}
}
}
In my App
module (main project), I am declaring the client to use MyUserDefaultWrapper
import Common
public class MyUserDefaultsCommon: NSObject {
@objc static let shared = MyUserDefaultsCommon()
@MyUserDefaultWrapper("yearOfBirth", defaultValue: 1980)
static var yearOfBirth: Int
}
And using like,
MyUserDefaultsCommon.shared.yearOfBirth = 2001
Its producing build error.
Unknown attribute 'MyUserDefaultWrapper'
How to get rid of this issue?