2016-05-04 14 views
3

Im Versuch, eine Reihe von ‚Mitarbeitern‘ zu übergeben Objekte iPhone an Apple-Uhr durch das Array Serialisierung:Objekt der Klasse Mitarbeiter für Schlüssel kann nicht dekodiert werden (NS.object.0); die Klasse kann im Quellcode oder eine Bibliothek definiert werden, die nicht verknüpft ist

NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:employees]; 

und deserialisieren es wie auf dem Sehen Sie Seite:

NSMutableArray *employees = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject]; 

Dies ist die ‚Mitarbeiter‘ Klasse:

@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 

muss ich alle Änderungen auf der Uhr-Seite zu tun haben thi zu beheben s Fehler?

+0

Es sieht so aus, als ob der Code, der die Dekodierung ausführt, nichts über die Klasse "Employee" weiß. Wird es in die Uhrenseite kompiliert? – trojanfoe

+0

Ja. Ich muss die Liste der Mitarbeiter auf der Uhr zeigen – user2189878

+0

stellen Sie sicher, dass Mitarbeiter-Klasse in der Watch-Ziel hinzugefügt und es entspricht NSCoding-Protokoll. –

Antwort

19

so hatte ich genau das gleiche Problem und die Antwort ist einfach, aber ein wenig schwer zu finden.

Sie haben einfach zu verwenden:

  • NSKeyedArchiver.setClassName("Employee", forClass: Employee.self)
    vor
  • Serialisierung
  • NSKeyedUnarchiver.setClass(Employee.self, for: "Employee")
    vor Deserialisieren

wo immer nötig.

Sieht aus wie iOS-Erweiterungen den Klassennamen mit dem Namen der Erweiterung voranstellen.

+1

Vielen Dank! – mangerlahn

+0

Vielen Dank für Ihre Antwort :) – pawisoon

+0

Vielen Dank. Der Spaß am Upgrade großer App von Objc zu schnell. –