【发布时间】:2019-09-19 03:01:24
【问题描述】:
我正在尝试从 NSKeyedUnarchiver 取消存档已保存的对象。未归档的数据没问题,但我无法从 Any 中投射它?键入它的实际类型 (OIDAuthState)。
public func loadState() {
if let archivedAuthState = UserDefaults.standard.object(forKey: stateKeychainIdentifier) as? Data {
if let authState = NSKeyedUnarchiver.unarchiveObject(with: archivedAuthState) {
setAuthState(authState as! OIDAuthState)
}
}
}
我也试过
if let authState: OIDAuthState = ....
if let authState = NSKeyedUnarchiver.unarchiveObject(with: archivedAuthState) as? OIDAuthstate { ...
这一切都失败了。 OIDAuthState 是一个桥接到 Swift 的 Objective-C 类,它继承自 NSObject 和 NSSecureCoding。
【问题讨论】: