hkl*_*lel 6 xcode nsdata ios nskeyedunarchiver swift
我刚刚重命名了我的Xcode项目,当我运行它时出现了这个错误:
2015-11-14 05:32:42.337 Buck Tracker [3537:1456100] *由于未捕获异常'NSInvalidUnarchiveOperationException'而终止app,原因:'* - [NSKeyedUnarchiver decodeObjectForKey:]:无法解码类的对象(iBudgeter.Record)关键(NS.objects); 该类可以在源代码中定义,也可以在未链接的库中定义
这Buck Tracker是新名称,iBudgeter是原始名称.Record是NSObject我创建的用于存储一些数据的自定义.
我尝试将项目重命名为iBudgeter但它没有用.恢复到git中的先前版本确实有帮助,但是当我再次重命名它时我得到了同样的错误.
那有什么建议吗?
ter*_*ina 14
另一种方法是修复用于NSCoding的类的名称.你只需要使用:
NSKeyedArchiver.setClassName("Record", forClass: Record.self 在序列化之前NSKeyedUnarchiver.setClass(Record.self, forClassName: "Record") 在反序列化之前在需要的地方.
看起来iOS扩展名在类名前面加上扩展名.
如果您将文件移动到另一个模块,则需要添加其他信息
NSKeyedArchiver.setClassName("OldModule.ClassName", for: ClassName.self)
NSKeyedUnarchiver.setClass(ClassName.self, forClassName: "OldModule.ClassName")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |