我有一个自定义的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等...它们工作正常,所以它似乎是使用自定义对象的问题。我该如何解决这个问题?