NSInvalidUnarchiveOperationException не может декодировать ошибку объекта в расширении Apple Watch
У меня есть пользовательский объект, который мне нужно сохранить в NSUserDefaults и поделиться им с приложением расширения iOS 8 (Watchkit). В приложении основного контейнера я могу без проблем кодировать и декодировать объект. Тем не менее, когда я пытаюсь получить сохраненный пользовательский объект в расширении, я получаю"'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class"
ошибка.
Насколько я вижу, NSCoding был правильно реализован в объекте (и я могу кодировать и декодировать объект в «основном» приложении).
Код в приложении «Контейнер» для хранения объекта пользователя.
//Store user data in NSUserDefaults
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mygroup"];
SFUserAccount *user = [SFUserAccountManager sharedInstance].currentUser;
NSData *userEncodedObject = [NSKeyedArchiver archivedDataWithRootObject:user];
[defaults removeObjectForKey:@"SF User Acct1"]; //remove any old values
[defaults setObject:userEncodedObject forKey:@"SF User Acct1"];
[defaults synchronize];
SFUserAccount *decodedUser = [NSKeyedUnarchiver unarchiveObjectWithData:userEncodedObject];
Последняя строка выше для выполнения тестового декодирования в основном приложении работает нормально.
Код для извлечения из NSUserDefaults и декодирования в цели расширения приведен ниже.
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mygroup"];
NSData *archivedUser = [defaults objectForKey:@"SF User Acct1"];
if (archivedUser){
SFUserAccount *user = [NSKeyedUnarchiver unarchiveObjectWithData:archivedUser];
}
В коде расширения я получаю «NSInvalidUnarchiveOperationException», причина: «*** - [NSKeyedUnarchiver decodeObjectForKey:]: невозможно декодировать объект класса»
Любые предложения относительно того, где я должен начать искать? Приложение прекрасно компилируется, что заставляет меня поверить, что необходимые цели были включены в цель расширения.