在我的项目中,我有一个名为Country的自定义对象,它实现了NSCoding
代码在iphone上共享,并通过引用观看应用程序。这两个应用都在同一个应用组中。
在我的iPhone应用程序中,我正在使用NSUserDefaults来讲述一个Country对象,从watch app我正在使用以下代码读取相同的对象:
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应用程序中的此代码完美运行且国家/地区变量已正确创建,在Watch应用程序中它会抛出错误:
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (Country)'