Avatar
だめだ。 KeyPathWrapper のための ReferenceWritableKeyPath に変換できない。 import SwiftUI extension ObservedObject.Wrapper { var readOnly: ReadOnly { .init(self) } @dynamicMemberLookup struct ReadOnly { private let wrapper: ObservedObject<ObjectType>.Wrapper init(_ wrapper: ObservedObject<ObjectType>.Wrapper) { self.wrapper = wrapper } subscript<Subject>(dynamicMember keyPath: KeyPath<ObjectType, Subject>) -> Binding<Subject> { get { wrapper[keyPath: keyPath] } // ⛔ set { assertionFailure("Read-only") } } } }
10:49 PM
Wrapper がラップしてる元のオブジェクトを参照できればいいんだけど・・・。
10:50 PM
あ、 subscriptget, set じゃなくて getBindingset をつぶさなきゃいけないか。どっちにしろダメだけど。 (edited)
10:53 PM
WrapperreadOnly 生やして $foo.readOnly.a は諦めて、少々ブサイク(?)だけど ReadOnlyWrapper 方式で _foo.readOnly.a にするか。 (edited)