問題タブ [nskeyedarchiver]
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.
key - NSKeyedUnarchiver のすべてのキーを取得できますか?
私はこれらのステップで何かをしたい:
- ある種のオブジェクト A を NSKeyedArchiver M でエンコードすると、NSData X を取得できます。
- NSData X から NSKeyedUnarchiver N で別の種類のオブジェクト B を初期化します。A と B の名前は同じなので、可能です (私は実験を行いました)。
- そして、B をエンコードしたいのですが、B が X の一部のデータを失うかどうかはわかりません。なぜなら、A と B は異なる数のプロパティを持つ可能性があるからです。
だから私はNからすべてのキーと値を取得したいのですが、どうすればこれを行うことができますか?
NSKeyedUnarchiver がよくわかりません。助けてください。
serialization - シリアライゼーション vs. アーカイブ?
iOS ドキュメントでは、「シリアル化」と「アーカイブ」を区別しています。これは一般的な違いですか (つまり、他の言語にも当てはまります)、それとも Objective-C に固有のものですか? また、これら2つの違いは何ですか?
iphone - NSKeyedUnarchiver: iPhone .v. シミュレーター
私がやっている:
アーカイブされた文字列は、UITextField
ここでアーカイブ解除した からのテキストです。ありとなしで試しましたcurrent_path
。
シミュレーターで実行している場合(クラスメンバーNSString *my_string_
はnilではない)、これはすべて正常に機能しますが、iPhoneで実行するmy_string_
とnilになります。
何故ですか?
迅速な対応ありがとうございます。
Jason Coco の回答に追加して、ここにアーカイブしてアーカイブを解除します。
iphone - NSKeyedArchiver は配列の一部のみをエンコードします
時々変更される可能性のあるオブジェクトのリストがあり、アプリを閉じたりバックグラウンドに移動したりするたびに、デバイスに永続的なキャッシュを保持したいと考えています。リスト内のオブジェクトのほとんどは変更されないため、リストを保存する最善の方法は何かと考えていました。私が考えている2つの主要なオプションがあります。
NSKeyedArchiver / unArchiver の使用 - これは最も便利な方法です。シリアライズしているオブジェクトは他のカスタム オブジェクトを保持しているため、この方法でそれぞれのカスタム エンコード メソッドを記述できます。主な問題は、変更されたオブジェクトのみをシリアル化する方法を Google で見つけられなかったことです。毎回リスト全体をシリアル化するのは非常に無駄に思えます。
SQLite の使用 - これは私が現在使用しているものです。ここでの最悪の問題は、オブジェクトのプロパティの追加と変更が非常に複雑で、あまり洗練されていないことです。
NSKeyedArchiver の利便性を享受しながら、変更されたオブジェクトのみをシリアル化する方法はありますか?
objective-c - NSKeyedArchiverでデータをどのように保存しますか?
こんにちは、私は自分が作成したクラスからオブジェクトを保存しようとしています。これはショットと呼ばれ、保存したい5つの変数が含まれています。これが.hファイルです--- NSCodingとNSMutableCopyingProtocalsと私のインポートを遮断しましたが、それらはそこにあります。
これらの方法を使用すると、データを保存できないようです
保存と読み込みの方法をボタンまで設定しましたが、データは保存されません。助けてください!!!
iphone - nskeyedarchiverで使用するファイル拡張子は何ですか
NSKeyedArchiverを使用してデータを保存するアプリを作成しています。私のファイルはishotTrack.plistまたはishotTrack.archである必要がありますか?
iphone - シングルトンの使用とアーカイブ
アプリ全体で永続的な設定を維持したいクラスがあります。このクラスは次のように定義されます。
そして次のように実装されます:
アプリケーション デリゲート applicationWillTerminate メソッド:
私は、このアーカイブ/アーカイブ解除の概念については初めてです。問題は、データ ファイルから読み戻せないことです。次のエラーが表示されます。
-[NSKeyedUnarchiver initForReadingWithData:]: データは NULL です
誰かが私が間違っていることを説明できますか? または、永続データを保存/復元するためのより良い方法かもしれません。私は NSUserDefaults クラスを調べましたが、私の場合には合わないと思います... ユーザー設定を保存しようとしていません。
ios - iOS - 列挙型のエンコード/デコード - 再起動後にアクセスするとクラッシュする
私は何を間違っていますか?列挙型を適切にエンコード/デコードしていますか?
GameSettings インターフェイス:
GameSettings の実装:
設定を保存する:
アプリを再起動してゲーム設定にアクセスしようとすると、クラッシュ (プログラムが受信したシグナル: 「EXC_BAD_ACCESS」) が発生します。
再起動後に GameSettings シングルトンにアクセスできないのはなぜですか?
iphone - CLLocation データをアーカイブする必要がある
CLLocation
アーカイブしたいデータの配列があります。システムを使用する必要がありNSUserDefaults
ますか? それ以外の場合、データをアーカイブする最善の方法はCLLocation
?
nskeyedarchiver - 循環参照を含む NSMutableSet のアーカイブ解除に問題があります
iPhone (iOS 4.3) アプリで NSMutableSet オブジェクトのアーカイブを解除する際に問題があります。
タイプ NSMutableSet の ivar を含む UIImageView のサブビューがあります。ヘッダーで NSMutableSet を定義しました (実装で合成しました):
セットには、タイプ MyView の 0 個以上のオブジェクトへの参照が含まれています。group は MyView の属性であるため、nil 以外のグループ メンバー (MyView オブジェクト) への参照は循環します。
このビューを次のようにエンコードします。
NSLog は、正常なグループ オブジェクトがアーカイブされていることを示しています。しかし、エンコードを解除すると、NSException が発生します。
このバグを初めて見たとき、かなり詳細なエラー メッセージが表示されました。「キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: ' * -[NSCFSet count]: method sent to an uninitialized mutable set object'」
ただし、問題を再現すると、はるかに情報が少ないメッセージが表示されます。「NSException」のインスタンスをスローした後に呼び出された終了
アーカイブは次のコマンドで作成されます。
そして、これで開きました:
これについて助けてくれてありがとう。
- リッチ