在两个不同的项目中使用一个类:解码器异常

时间:2016-03-26 22:09:48

标签: xcode swift nskeyedarchiver nscoder nskeyedunarchiver

我使用此代码时有异常;

let readingData = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? [ExternalProjectClass]

控制台中的消息:

  

无法解码类(MyIOSApp.ExternalProjectClass)的对象(NS.objects);该类可以在源代码中定义,也可以在未链接的库中定义

我使用' ExternalProjectClass'在同一工作场所的2个项目中的课程。在MyApp应用程序(mac版本)中。否则我可以正常使用我的班级,我只有编码问题。

我知道我的英语有多穷。我希望有人可以帮助我。

问候。

1 个答案:

答案 0 :(得分:0)

Swift类名具有名称空间,默认名称空间是模块名。因此,如果您将存档从应用程序移动到另一个应用程序,则类名称会有所不同。

您可以在您的班级上添加@objc(ExternalProjectClass)属性,因此就NSCoder而言,它被称为ExternalProjectClass

@objc(ExternalProjectClass) class ExternalProjectClass: NSObject, NSCoding { ... }