在我的项目中,我有一个名为 Country 的自定义对象,它实现了 NSCoding
该代码通过引用在 iPhone 和 Watch 应用程序之间共享。两个应用程序都位于同一应用程序组中。
在我的 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 应用程序中的这段代码运行良好,并且正确创建了国家/地区变量,但在 Watch 应用程序中它抛出错误:
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (Country)'
有同样的问题,这对我有帮助:https://devforums.apple.com/message/1093079#1093079 https://devforums.apple.com/message/1093079#1093079
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)