如果我有
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,沿线使用 nil 值会导致崩溃。
我的问题是有没有办法将其转换KeyPath
为 aReferenceWritableKeyPath
或以某种方式解开它?