- [NSKeyedUnarchiver decodeObjectForKey:]:无法解码类的对象

时间:2015-11-13 22:26:57

标签: ios swift nskeyedunarchiver

我在更新应用后无法理解错误。我已经在应用商店中有一款应用。我将一些应用程序特定数据存档并存储在应用程序支持目录中的文件中。每次应用程序启动并发送到后台时,我都在阅读和存储数据。到目前为止一切都很好。现在我发布了该应用程序的更新。更新后,当我启动应用程序并尝试取消归档数据时,它崩溃了以下异常。

-[NSKeyedUnarchiver decodeObjectForKey:]: 
cannot decode object of class (ProjectName.ProjectFile) for key (root);
the class may be defined in source code or a library that is not linked.

如果我删除该应用并再次安装该应用,一切正常。

我的原始应用和更新都是用Swift编写的。我还没有将文件名从版本1更改为2.是否有人知道发生了什么?

1 个答案:

答案 0 :(得分:12)

我找到了上述原因。

基本上我将项目目标名称从版本1更改为版本2.因此它尝试解码public static void main (String[] args) { int [] a = new int [args.length - 1];W for (int i = 0; i<a.length; i++) { a[i] = Integer.parseInt(args[i+1]); } for (int i = 0; i < a.length - 2; i++) { for (int j = i+1; j < a.length - 1; j++) { int b = a[i]; for (int k = j + 1; k < a.length; k++) { int c = a[k]; if (b - a[i] == c - b) { System.out.println("yes"); break; } } } } } } 而不是ProjectName2.ProjectFile

启动第一个版本时,可能的避免方法是ProjectName.ProjectFile。如果您像我一样更改目标名称,请使用@objc(PFUserUtils)方法将类名设置为旧名称。