Avatar
propertyWrapperのprojectedValueとKeyPath Dynamic Member Lookupのあわせ技な部分なので難しいですよね。 $obObservableObject.Wrapperが返ってくるところまでは理解されていると思います。これはpropertyWrapperのprojectedValue の仕組みでObservableObject<T>.Wrapper が返ってきているためです。 このWrapperにはさらにKeyPath Dynamic Member Lookupが実装されており、Tに生えてる任意のプロパティを https://developer.apple.com/documentation/swiftui/observedobject/wrapper/subscript(dynamicmember:) を経由して取り出しています。見え方が普通のプロパティアクセスになっているところが特殊です。