尝试使用NSKeyedArchiver.archiveRootObject时,Xcode与无法识别的选择器崩溃

时间:2015-10-12 09:44:03

标签: ios swift xcode7 nskeyedarchiver

我有一个自定义的Swift类,它使用NSKeyedArchiver将数据写入文件系统。本课程中的一项功能是:

func writeDataToArchive (data: AnyObject) {

    let dirPath = "\(currentPath)/\(fileName)"

    //----

    NSKeyedArchiver.archiveRootObject(data, toFile: dirPath)


}

然后我通过传递一段数据来保存这样的函数:

let dataToWrite: [NoteItem] = Hub.allNotes

metaData.writeDataToArchive(dataToWrite)

当我运行我的程序时,Xcode在此行崩溃

NSKeyedArchiver.archiveRootObject(data, toFile: dirPath)

带有以下错误消息:

  

2015-10-12 05:25:39.949 MyApp [86437:4755070] *** NSForwarding:   警告:类的对象0x7fe5ba5533c0' MyApp.NoteItem'才不是   实现methodSignatureForSelector: - 事先无法识别   selector - [MyApp.NoteItem replacementObjectForKeyedArchiver:]

基于错误消息,似乎是关于尝试将自定义对象写入设备的问题。当我使用其他标准数据类型,如Int,String等...它们工作正常,所以它似乎是使用自定义对象的问题。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果您还没有,请确保您的对象继续NSObject每个this上一篇文章。