問題タブ [nskeyedunarchiver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - [NSKeyedUnarchiver init]: カスタム クラスを保存しようとすると、初期化に -init を使用できませんというエラーが表示される
エラーが発生します:
[NSKeyedUnarchiver init]: カスタム クラスをロードしようとすると、初期化に -init を使用できません。
クラスの私のInitは次のとおりです。
Heres私のエンコーダー関数
最終的にロードする私の呼び出し:
ios - 不明なオブジェクトを含む NSKeyedArchived コレクションをデコードすることは可能ですか?
クラス A、B、C が異なるオブジェクトのコレクションがあります (すべて共通のスーパークラスを共有しています)。
このコレクションは、NSCoding を介してアーカイブおよびアーカイブ解除されます。 クラスの 1 つがプロジェクトから削除された場合、このコレクションを部分的にアーカイブ解除する方法はありますか?
デコードできないオブジェクトに遭遇するとdecodeObjectForKey:
、失敗してオブジェクトを返します。nil
代わりに、デコードできるものだけを取得する方法はありますか? この動作がオブジェクトでは意味があるのに、コレクションでは意味がない理由を理解しています。
xcode - 2 つの異なるプロジェクトでクラスを使用する: デコーダ例外
このコードを使用すると例外があります。
コンソールのメッセージ:
キー (NS.objects) のクラス (MyIOSApp.ExternalProjectClass) のオブジェクトをデコードできません。クラスは、リンクされていないソース コードまたはライブラリで定義されている可能性があります。
同じ職場の2つのプロジェクトで「ExternalProjectClass」クラスを使用しています。MyApp アプリケーション (mac 版) で。それ以外の場合は、クラスを通常どおり使用できます。コーディングに問題があるだけです。
私は自分の英語がいかに下手かを知っています。誰かが私を助けてくれることを願っています。
よろしく。
ios - NSKeyedArchiver オブジェクトを新しいバージョンに変換する方法
アプリ ストアにアプリをリリースしたばかりで、常連客の 1 人から、以前は NSKeyedArchiver を使用して整数として保存していたデータ型を Double に変更する必要があるとの連絡がありました。
アプリのデータ モデルを変更するのは簡単ですが、テスト デバイスでアプリをリロードすると、NSKeyedUnarchiver は明らかに Integer を Double としてデコードしたくなく、NSInvalidUnarchiveOperation 例外をスローします。
他の iOS 開発者がこの状況をどのように処理するのか疑問に思っていました。ユーザーの以前に保存したデータをすべて消去したくはありませんが、それが唯一の解決策です。
私のコードは以下に掲載されています。役に立たなかったいくつかの解決策をコメントアウトしました
arrays - Swift の DocumentDirectory での配列のアーカイブとアーカイブ解除
次のコードを実行して、オブジェクトの単純な配列を永続メモリに保存しようとしています。
それでも、コードのように復元された日付を出力すると、nil が見つかります。
逆に、CachesDirectory を使用すると、配列はすぐに正常に復元されます
が、アプリを再度開いてデータを読み込もうとすると、配列が失われます。データを永続的に保存する正しい方法は何ですか?
ios - キー (NS.object.0) のクラス Employee のオブジェクトをデコードできません。クラスはソースコードまたはリンクされていないライブラリで定義されている可能性があります
配列をシリアル化することにより、「従業員」オブジェクト iPhone の配列を Apple Watch に渡そうとしています。
ウォッチ側のようにシリアル化を解除します。
これは「従業員」クラスです。
このエラーを修正するには、Watch 側で何らかの変更を行う必要がありますか?
ios - NSKeyedArchiver/ NSKeyedUnarchiver iOS の代替
アーカイブ後にファイルに書き込まれる辞書があります[NSKeyedArchiver archivedDataWithRootObject:dictionary]
。ファイルの内容を取得し、アーカイブされたデータをマルチピア経由でピア デバイスに転送します。次に、ピア デバイスで、を使用してデータのアーカイブを解除しています[NSKeyedUnarchiver unarchiveObjectWithData:data]
。ただし、データは存在しますが、アーカイブ解除中に nil を返します。
ファイル内のコンテンツが巨大であると思われます。NSkeyedArchiver
/に代わるものはありますNSKeyedUnarchiver
か?
コード: アーカイブ:
転送:
アーカイブ解除: