2016-05-04 15 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的樂趣。 –

    相關問題