2016-07-15 5 views
0

私は次のエラーを取得するスウィフトNSUnarchiverは、私は、カスタムオブジェクトをアーカイブ解除しようとすると、エラー

「キー(ルート)のためのクラスのオブジェクト(PhotoList)をデコードすることはできません。クラスがソースコードまたはリンクされていないライブラリで定義されている可能性があります。 '

私は現在App Storeにバージョンを持っています(v1.0、TestFlight(v2.0)でアップデートを発行しました。 Xcode経由で同じバージョンのビルドでエラーが発生することはありません(これは私には分かります)。

ここにオブジェクトをアーカイブするためのコードがあります

let data = NSKeyedArchiver.archivedDataWithRootObject(VehicleList.instance) 
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "archiveName") 

そしてここでは、オブジェクト

0123をアンアーカイビングのために私が持っているコードです。
if let data = NSUserDefaults.standardUserDefaults().objectForKey("archiveName") as? NSData { 
    let photoList : PhotoList = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! PhotoList 
} 
+0

どのラインでクラッシュしますか?また、間違った型にキャストしています。 'PhotoList'を' VehicleList'に置き換えてください。 – fiks

+0

VehicleList/PhotoListはソースコードの型です - 私の悪い! それは以下の行にクラッシュしています: let photoList:PhotoList = NSKeyedUnarchiver.unarchiveObjectWithData as data!フォトリスト –

答えて

0

複数のターゲットに関連する問題が判明しました。ターゲットを複製したときに元のターゲットを別のターゲットにスワップしたので、実際にはデータを解凍できない別のターゲットでした。

ターゲットを作成する際に注意し、ターゲットを混在させないように注意してください。これで誰かがこのことを理解するのにかかった時間が節約されることを願っています!

関連する問題