次のSwiftコードを使用してSwiftクラスを解凍しています:
required convenience init(coder decoder: NSCoder) {
self.init()
horseID = decoder.decodeIntegerForKey("horseID")
name = decoder.decodeObjectForKey("name") as String!
// if the thumb key does not exist, the following line crashes
thumb = decoder.decodeObjectForKey("thumb") as UIImage!
}
「親指」クラスのメンバーは後で追加されました。サム データが含まれていない古いアーカイブ ファイルがあります。Apple のドキュメントによると、存在しないキーのアーカイブを解除すると nil が返されます。これは、おなじみの Objective-C の動作です。Swift コードがエラー コード EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) でクラッシュします。
から に変更しても問題は解決as
しas?
ません。
これにより、新しいバージョンでデータ モデルを拡張することが困難になります。私は何か間違ったことをしていますか?私はSwiftが初めてです。