1

在我的项目中,我有一个名为 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)'
4

1 回答 1

4

有同样的问题,这对我有帮助:https ://devforums.apple.com/message/1093079#1093079

于 2015-02-08T01:53:04.333 回答