ios - [__SwiftValueencodeWithCoder :]: unrecognized selector sent to instance

标签 ios swift nsdata nskeyedarchiver

我正在尝试使用以下代码存档字典并收到错误。显然,我传递的响应字典中有问题,但跟踪没有说明任何信息。如何确定根本原因?

do {
    let data = try NSKeyedArchiver.archivedData(withRootObject: response, requiringSecureCoding: false)
} catch {
    NSLog("Unable to archive  \(error)")
}   

错误:

2019-07-17 19:08:38.978954+0530 MyApp-Swift[372:16845] Unable to archive  Error Domain=NSCocoaErrorDomain Code=4866 "Caught exception during archival: -[__SwiftValue encodeWithCoder:]: unrecognized selector sent to instance 0x282995e00
    (
    0   CoreFoundation                      0x00000001ca149ebc  + 252
    1   libobjc.A.dylib                     0x00000001c9319a50 objc_exception_throw + 56
    2   CoreFoundation                      0x00000001ca062b14  + 0
    3   CoreFoundation                      0x00000001ca14f7bc  + 1412
    4   CoreFoundation                      0x00000001ca15146c _CF_forwarding_prep_0 + 92
    5   Foundation                          0x00000001cabc4aa8  + 1276
    6   Foundation                          0x00000001caadc3b4  + 444
    7   Foundation                          0x00000001cab08ed8  + 964
    8   Foundation                          0x00000001cabc4aa8  + 1276
    9   Foundation                          0x00000001caadc3b4  + 444
    10  Foundation                          0x0000000

最佳答案

NSKeyedArchiver 仅适用于 Cocoa Objective C 对象。只有 NSCoding 采用者可以使用 NSKeyedArchiver 进行存档。您需要一个仅包含 NSCoding 类型的 NSDictionary。好吧,你没有。

关于ios - [__SwiftValueencodeWithCoder :]: unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57078018/

相关文章:

ios - 在 TableView 中显示文本

ios - 在单独的类文件中定义 UIAlert,然后从任何 View Controller 调用它

macos - 如何在沙盒应用程序中使用用户选择的文件内的路径打开文件

ios - 将 NSData 转换为 SecKeyRef

ios - NSData datawithcontentsofffile 返回 null

objective-c - 在不同的托管对象上下文中看不到 ios coredata 更新 - 上下文之间的数据不同

iOS Paypal MPL 开发者错误

iphone - 自定义 UINavigationController 和 UIBarbuttonItem

ios - 如果滚动 UITableView 时出现 popViewController,应用程序崩溃

ios - 如何设置 Root View Controller ?