我已将部分代码移到一个单独的框架中,并且该框架包含应用程序用来将数据持久保存到CoreData的模型。现在,当我尝试启动该应用程序并尝试从CoreData恢复状态时,出现以下错误。
2020-06-17 21:01:42.549851-0400 Project[17576:2986881] [error] fault: exception raised during multi-threaded fetch *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (Project.Track) for key (NS.objects) because no class named "Project.Track" was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target). If the class was renamed, use setClassName:forClass: to add a class translation mapping to NSKeyedUnarchiver ({
"__NSCoderInternalErrorCode" = 4864;
})
它在将代码拆分到一个单独的框架之前按预期工作。我试图将框架导入使用CD的每个类中,甚至尝试使用Framework.Track
将其映射到类的新命名空间中,但是仍然出现此错误。有人遇到过这种情况吗?如果可以,您能否分享一些解决错误的见解?感谢您的帮助。
我找到了答案,这是异常所指定的。我只需要使用应用程序的名称空间将类名设置为新导入的类,就这样:
NSKeyedUnarchiver.setClass(Track.self, forClassName: "Project.Track")
希望对某人有帮助。