2016-05-04 13 views
3

进出口试图通过串行化阵列传递的“雇员”对象iPhone苹果观看的数组:无法解码类Employee的对象(NS.object.0);类可以以源代码或未链接库中定义

NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:employees]; 

和反序列化它作为上关注方:

NSMutableArray *employees = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject]; 

这是“雇员”类:

@interface Employee : NSManagedObject 
@property (nonatomic, retain) NSNumber * employeeID; 
@property (nonatomic, retain) NSString * name; 
@property (nonatomic, retain) NSNumber * age; 
@property (nonatomic, retain) NSString * address; 
@property (nonatomic, retain) NSString * designation; 
@property (nonatomic, retain) NSString * teamName; 
@property (nonatomic, retain) NSString * gender; 
@property (nonatomic, retain) NSNumber * dateOfJoining; 
@end 

我必须做对观看侧的任何改变来解决THI错误?

+0

它看起来像解码的代码不知道'Employee'类。它是否被编入手表方? – trojanfoe

+0

是的。我必须在手表 – user2189878

+0

上显示Employees列表,确保Employee类添加到Watch目标中,并且符合NSCoding协议。 –

回答

19

所以我只是有同样的问题,答案很简单,但很难找到自己。

您只需使用:

  • NSKeyedArchiver.setClassName("Employee", forClass: Employee.self)
    反序列化

需要的地方之前序列化

  • NSKeyedUnarchiver.setClass(Employee.self, for: "Employee")
    之前。

    看起来像iOS扩展在类名前加了扩展名。

  • +1

    非常感谢! – mangerlahn

    +0

    非常感谢您的回答:) – pawisoon

    +0

    谢谢。将大型应用程序从objc升级到swift的乐趣。 –

    相关问题