スウィフト3の前に、あなたはこのようにNSCoderとブール値をデコード:スイフト3:NSCoderで値をデコードする安全な方法はありますか?
aDecoder.decodeBool(forKey: TestKey)
しかしdecodeBool
のクラス参照がない:
if let value = aDecoder.decodeObjectForKey(TestKey) as? Bool {
test = value
}
スウィフト3で提案されたアプローチではなく、これを使用することですデコードしている値が実際にブール値でない場合の状況の処理方法を説明してください。戻り値はオプションではないため、decodeBool
をletステートメントに埋め込むことはできません。
Swift 3の値を安全にデコードするにはどうすればよいですか?
それはブールのを待って、それは、エラーが発生しますまあ。だからあなたはそれがブールであることを確かめなければならないのですか? – pedrouan
そう、@pedrouanをチェックするのは安全な方法ではありません。エラーは迅速な2構文で捕らえられます。 – Crashalot
エンコードするタイプを知っておく必要があります。これは、 'Bool'が' Bool'としてエンコードされ、 'Bool'が' Object'としてエンコードされているため、特に困難な場合があります。 http://stackoverflow.com/questions/38072295/fail-to-decode-int-with-nscoder-in-swiftを参照してください。 – Sulthan