无法解码Employee类的对象(NS.object.0); 该类可以在源代码或未链接的库中定义
我试图通过序列化数组传递一个“员工”对象iPhone数组到苹果手表:
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:employees];
并将其反序列化为Watch:
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
我是否需要在Watch端做任何修改来解决这个错误?
所以我只是有同样的问题,答案很简单,但是很难自己find。
你只需要使用:
-
NSKeyedArchiver.setClassName("Employee", forClass: Employee.self)
在序列化之前 -
NSKeyedUnarchiver.setClass(Employee.self, for: "Employee")
在反序列化之前
在需要的地方。
看起来iOS扩展在类名的后面加上扩展名。