Невозможно декодировать объект класса Employee для ключа (NS.object.0); класс может быть определен в исходном коде или библиотеке, которая не связана

Я пытаюсь передать массив объектов «Сотрудник» iPhone в Apple Watch путем сериализации массива:

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 

Должен ли я делать какие-либо изменения в Стороне Watch, чтобы исправить эту ошибку?

  • AVAudioPlayer не воспроизводит звук
  • Почему расширение WatchKit вызывает сообщение «Ожидание прикрепить» на фактическом Apple Watch, но не в симуляторе?
  • Цвет уведомлений WatchKit
  • Как программно открыть приложение-компаньон Apple Watch из приложения iOS
  • Представление предприятия для приложения watchkit?
  • Как добавить постоянную приложение iPhone (класс .h) и сторонние рамки в расширение набора часов?
  • handleWatchKitExtensionRequest не отвечает на openParentApplication в расширении Watchkit (Swift)
  • набор настроек, не работающий на watchOS 2
  • One Solution collect form web for “Невозможно декодировать объект класса Employee для ключа (NS.object.0); класс может быть определен в исходном коде или библиотеке, которая не связана”

    поэтому у меня была такая же проблема, и ответ прост, но немного трудно найти сам.

    Вам просто нужно использовать:

    • NSKeyedArchiver.setClassName("Employee", forClass: Employee.self перед сериализацией
    • NSKeyedUnarchiver.setClass(Employee.self, forClassName: "Employee") перед десериализацией

    где это необходимо.

    Похоже, расширения iOS префиксное имя класса с именем расширения.

    Interesting Posts

    Spotify SPTAuth canHandleURL рушится с NSInvalidArgumentException

    Как использовать CoreMotion для получения ориентации устройства в пространстве

    Чтение строки из файла .strings в XCode

    Как импортировать JSQMessagesViewController в swift?

    Почему iPad становится невосприимчивым после добавления UIGestureRecognizer в UIWindow?

    Изменение текста в статической ячейке UITableView?

    UIToolBar является прозрачным

    Проверить доступность интернет-соединения?

    apns http2 api не возвращает статус 410 после удаления приложения

    Как отформатировать текущую дату для локали пользователя?

    Как исправить странные ошибки NSLayoutConstraint, которые, похоже, не влияют на макет в пользовательском UITableViewCell

    Можно ли отслеживать клики через iPhone Smart Banner

    Как отключить прокрутку полностью в WKWebView?

    UIModalPresentationOverFullScreen позволяет взаимодействовать с контроллером представления ниже

    Использование переменной для имени элемента в Core Data Predicate

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.