当我使用$访问属性包装器结构时,编译器会发出错误消息。
我正在使用Xcode 11 beta5。并且我测试了一些有关属性包装器的代码。
class Resolver {
static var root = Resolver()
func resolve<Service>(_ serviceType: Service.Type, name: String?) -> Service? {
return true as? Service
}
}
@propertyWrapper
struct Injected<Service> {
private var service: Service?
public var container: Resolver?
public var name: String?
public var wrappedValue: Service {
mutating get {
if service == nil {
service = (container ?? Resolver.root).resolve(
Service.self,
name: name
)
}
return service!
}
mutating set {
service = newValue
}
}
}
struct AAA {
@Injected var flag: Bool
init() {
print(flag)
$flag.name = 123
}
}
AAA()
我希望代码可以编译,但是在“ $ flag.name = 123”中出现错误
P.S。 Xcode beta 2可以使用相同的代码
答案 0 :(得分:0)
这已从$更改为_
_flag.name = 123
应该可以工作