WatchKit NSUserDefaults和NSKeyedUnarchiver问题

时间:2015-02-07 14:51:42

标签: nsuserdefaults watchkit nskeyedunarchiver

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

1 个答案:

答案 0 :(得分:4)

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