如果我有
不幸的是,如果使用空值调用
我的问题是是否有一种方法可以将
class Info {
var name: String?
}
class User {
var info: Info?
}
class WrappedClass {
var user: User = User()
}
let nameKeyPath = \WrappedClass.user.info?.name //Gets me KeyPath
let referencedNameKeyPath = \WrappedClass.user.info!.name //Gets me ReferenceWritableKeyPath
nameKeyPath
会返回一个无法用于修改名称值的 KeyPath
,但是如果我强制解包它,就会得到一个 ReferenceWritableKeyPath
,这正是我想要的。不幸的是,如果使用空值调用
referencedNameKeyPath
,则会出现预期崩溃,因为找到了 nil。我的问题是是否有一种方法可以将
KeyPath
转换为 ReferenceWritableKeyPath
或者在途中进行解包?