1

私のプロジェクトには、NSCoding を実装する Country というカスタム オブジェクトがあります。

このコードは、参照によって iPhone とウォッチ アプリで共有されます。両方のアプリが同じアプリ グループに属しています。

私のiPhoneアプリでは、NSUserDefaultsを使用してCountryオブジェクトをストーリー化しています.watchアプリから、次のコードで同じオブジェクトを読んでいます:

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 アプリのこのコードは完全に機能し、country 変数は正しく作成されます。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 に答える