問題タブ [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 投票する
1 に答える
52 参照

ios - TestFlight 経由で iTunes からアプリをダウンロードしたときの NSKeyedArchiver の問題

数日間追跡しようとしている非常に奇妙なバグがあります。ゲームの状態データをアプリのドキュメント ディレクトリ内のファイルに保存しています。

最近の iOS アップデートまで、すべてが正常に機能していました (正確な時期はわかりませんが、9.0 前後のどこか)。突然、データが正しくアーカイブ/アーカイブ解除されません。

奇妙な部分は、iPad を MAC にテザリングした状態で Xcode から実行した場合、またはエミュレーターで実行した場合に、コードが正常に動作することです。TestFlight を使用して iTunes からアプリをダウンロードすると、機能しなくなります。これにより、デバッグが非常に困難になりました。

URL パスを使用し、エラー トラップ コードを追加しましたが、TestFlight 経由で iTunes からアプリをインストールすると、アーカイブが正しく機能しません。

最後の手段として、オブジェクトをアーカイブし、すぐに別の変数にアーカイブ解除してから、データをラベルに表示する新しいコードを追加しました。結果のオブジェクトには null データが含まれます。

例外はスローされません。

繰り返しますが、コードはアプリが iTunes からインストールされている場合にのみ機能しません。

コード スニペットは次のとおりです。

ここにデータモデルがあります

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

xcode - decodeBool forKey で NSCoder がクラッシュする (Xcode 8、Swift 3)

私はこの単純なクラスを持っています

保存コード:

読み取りコード:

問題は、NSKeyedUnarchiver がその仕事をしているときに発生します。問題がどこから来るのか理解できません。

ありがとう!

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

swift - NSKeyedUnarchiver が Swift 3 で動作しない

Mac アプリケーションでファイルを解凍するために使用する次のコードがあります。

しかし、Xcode 8.0 で Swift 3 にアップグレードして以来、次のエラー メッセージが表示されます 'unarchiveTopLevelObjectWithData' is unavailable in Swift: Use 'unarchiveTopLevelObjectWithData(_:) throws' instead。そのため、これを修正する方法について真剣に混乱しています。これは Xcode のバグですか?

0 投票する
4 に答える
3167 参照

ios - swift: 常に nil で nscoding decodeObject を使用する

Packet という名前のオブジェクトを書き込んで、Multipeer 接続を介して反対側に送信すると、次のコードが得られました。ただし、エンコードされたオブジェクトをデコードしようとするたびに、次のエラーが発生しました。

私が得たエラーは ---- Print out from me ---- "initcoder" fatal error: unexpectedly found nil while unwrapping an Optional value 2016-09-30 13:32:55.901189 Connection[323:33022] 致命的なエラー: Optional 値のラップ解除中に予期せず nil が見つかりました

しかし、オブジェクトを構築すると、すべての値が設定されます。問題なく Packet オブジェクトを契約しました。

---- 追加情報 ------ 乗算器接続を介して反対側に送信するときに、データをエンコードおよびデコードするために次のコードを使用しました。

エラーの原因は何だろうか。ありがとう。

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

swift3 - NSKeyedArchiver.unarchiveObject スウィフト 3 iOS 10

この質問の答えを探していましたが、何も見つかりませんでした。同様の質問にはまったく答えがありません。基本的にはNSKeyedUnarchiver.archiveRootObject()でデータを保存し、.unarchiveObject(withFile)で読み込みたい。Swift 2.3 では正常に動作していましたが、現在はアーカイブ解除部分が常に nil に戻ると言ってクラッシュします。ファイルが存在するかどうかも確認します。何が起こっているのか本当にわかりません。ロード手順は次のとおりです。

これは節約です:

しかし、最終的には常に「致命的なエラー: オプション値のラップ解除中に予期せず nil が見つかりました」というメッセージが表示されます