В моем проекте у меня есть пользовательский объект Country, который реализует NSCoding.
Код передается через iphone и приложение для часов по ссылке. Оба приложения находятся в одной группе приложений.
В моем приложении для iPhone я использую NSUserDefaults для создания истории объекта Country, из приложения для часов я читаю тот же объект со следующим кодом:
var defaults = NSUserDefaults(suiteName: "group.my.group")
if let data = defaults?.objectForKey("country") as? NSData {
if let country = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? Country {
println("done")
}
}
Этот код в приложении для iPhone работает отлично, и переменная страны создается правильно, в приложении для часов выдает ошибку:
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (Country)'