問題タブ [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.

0 投票する
0 に答える
133 参照

swift - [NSKeyedUnarchiver init]: カスタム クラスを保存しようとすると、初期化に -init を使用できませんというエラーが表示される

エラーが発生します:

[NSKeyedUnarchiver init]: カスタム クラスをロードしようとすると、初期化に -init を使用できません。

クラスの私のInitは次のとおりです。

Heres私のエンコーダー関数

最終的にロードする私の呼び出し:

0 投票する
1 に答える
96 参照

ios - 不明なオブジェクトを含む NSKeyedArchived コレクションをデコードすることは可能ですか?

クラス A、B、C が異なるオブジェクトのコレクションがあります (すべて共通のスーパークラスを共有しています)。

このコレクションは、NSCoding を介してアーカイブおよびアーカイブ解除されます。 クラスの 1 つがプロジェクトから削除された場合、このコレクションを部分的にアーカイブ解除する方法はありますか?

デコードできないオブジェクトに遭遇するとdecodeObjectForKey:、失敗してオブジェクトを返します。nil代わりに、デコードできるものだけを取得する方法はありますか? この動作がオブジェクトでは意味があるのに、コレクションでは意味がない理由を理解しています。

0 投票する
1 に答える
176 参照

xcode - 2 つの異なるプロジェクトでクラスを使用する: デコーダ例外

このコードを使用すると例外があります。

コンソールのメッセージ:

キー (NS.objects) のクラス (MyIOSApp.ExternalProjectClass) のオブジェクトをデコードできません。クラスは、リンクされていないソース コードまたはライブラリで定義されている可能性があります。

同じ職場の2つのプロジェクトで「ExternalProjectClass」クラスを使用しています。MyApp アプリケーション (mac 版) で。それ以外の場合は、クラスを通常どおり使用できます。コーディングに問題があるだけです。

私は自分の英語がいかに下手かを知っています。誰かが私を助けてくれることを願っています。

よろしく。

0 投票する
1 に答える
626 参照

ios - NSKeyedArchiver オブジェクトを新しいバージョンに変換する方法

アプリ ストアにアプリをリリースしたばかりで、常連客の 1 人から、以前は NSKeyedArchiver を使用して整数として保存していたデータ型を Double に変更する必要があるとの連絡がありました。

アプリのデータ モデルを変更するのは簡単ですが、テスト デバイスでアプリをリロードすると、NSKeyedUnarchiver は明らかに Integer を Double としてデコードしたくなく、NSInvalidUnarchiveOperation 例外をスローします。

他の iOS 開発者がこの状況をどのように処理するのか疑問に思っていました。ユーザーの以前に保存したデータをすべて消去したくはありませんが、それが唯一の解決策です。

私のコードは以下に掲載されています。役に立たなかったいくつかの解決策をコメントアウトしました

0 投票する
2 に答える
1477 参照

arrays - Swift の DocumentDirectory での配列のアーカイブとアーカイブ解除

次のコードを実行して、オブジェクトの単純な配列を永続メモリに保存しようとしています。

それでも、コードのように復元された日付を出力すると、nil が見つかります。
逆に、CachesDirectory を使用すると、配列はすぐに正常に復元されます
が、アプリを再度開いてデータを読み込もうとすると、配列が失われます。データを永続的に保存する正しい方法は何ですか?

0 投票する
3 に答える
6400 参照

ios - キー (NS.object.0) のクラス Employee のオブジェクトをデコードできません。クラスはソースコードまたはリンクされていないライブラリで定義されている可能性があります

配列をシリアル化することにより、「従業員」オブジェクト iPhone の配列を Apple Watch に渡そうとしています。

ウォッチ側のようにシリアル化を解除します。

これは「従業員」クラスです。

このエラーを修正するには、Watch 側で何らかの変更を行う必要がありますか?

0 投票する
1 に答える
613 参照

ios - NSKeyedArchiver/ NSKeyedUnarchiver iOS の代替

アーカイブ後にファイルに書き込まれる辞書があります[NSKeyedArchiver archivedDataWithRootObject:dictionary]。ファイルの内容を取得し、アーカイブされたデータをマルチピア経由でピア デバイスに転送します。次に、ピア デバイスで、を使用してデータのアーカイブを解除しています[NSKeyedUnarchiver unarchiveObjectWithData:data]。ただし、データは存在しますが、アーカイブ解除中に nil を返します。

ファイル内のコンテンツが巨大であると思われます。NSkeyedArchiver/に代わるものはありますNSKeyedUnarchiverか?

コード: アーカイブ:

転送:

アーカイブ解除: