Closed ZhangEason666 closed 4 months ago
import Foundation
@propertyWrapper
final class Atomic
private var value: Value
var wrappedValue: Value {
get {
lock.lock(); defer { lock.unlock() }
return value
}
set {
lock.lock(); defer { lock.unlock() }
value = newValue
}
}
init(wrappedValue value: Value) {
self.value = value
}
}
struct TestModel: SmartCodable { @Atomic var storeMap: [String: OtherModel] }
我们自定义了一个锁对storeMap的 set 、get进行防护,在对TestModel遵循SmartCodable时提示 does not conform to protocol 'Decodable'、does not conform to protocol 'Encodable'。 应该是Atomic中传入的泛型Codable时无法获取具体类型,从而无法进行Codable转换
你可以参考IgnoredKey.swift的实现,自己实现一下你的属性包装器。 可以加一下QQ群,详细沟通。
详细描述一下。 并提供一个示例。