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

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

objective-c - このコードは、カスタムオブジェクトの配列で使用できますか?

カスタムオブジェクトの配列をNSCodingプロトコルに準拠させると、上記は機能しますか?カスタムクラスと、カスタムオブジェクトの配列を保持するView Controllerの両方を、NSCodingプロトコルに準拠させる必要がありますか、それともカスタムクラスのみに準拠させる必要がありますか?NSKeyedArchiverをどこかで使用する必要がありますか?

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

objective-c - この配列をメモリにロードするにはどうすればよいですか

次のコードを使用して配列を保存しました。

それをメモリにロードするコードは何ですか?

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

ios - NSArchiver と NSKeyedArchiver の比較

またはを使用する必要があるかどうかは、どのようにわかりますNSArchiverNSKeyedArchiver? 違いは何ですか?

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

objective-c - NSKeyedArchiverを使用する必要がありますか?

オブジェクトがあります。プロパティとしてNSStringが2つだけあります。

これらのオブジェクトのいくつかを保持する配列を作成しました。

このアレイをディスクに保存するためにNSKeyedArchiverを使用する必要がありますか、それともNSUserDefaultsを使用できますか?

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

objective-c - NSKeyedArchiver archivedDataWithRootObject:

NSKeyedArchiverのパラメーターarchivedDataWithRootObject:は、保存しようとしている配列、またはNSDataに変換された配列であると想定されていますか?

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

objective-c - encodeWithCoder呼び出されない

NSCoderに準拠するオブジェクト(testSession)があり、次を使用すると次のようになります。

それは持っています:

そして、encodeWithCoder:関数とinitWithCoder:関数があります。どちらも呼び出されていません。これを防ぐにはどうすればよいですか?

これらはヘッダーで宣言する必要がありますか?

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

iphone - NSKeyedArchiver のデフォルト ディレクトリ

オブジェクトを保存するために NSKeyedArchiver を使用しています。path 引数にフル パスを書き出さなかったので、私のファイルは Apple iPhone シミュレーターのどこかに書き込まれています。

ファイルはどのディレクトリに保存されますか?

ありがとう!

mj

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

iphone - NSKeyedArchiver を使用して NSMutableArray を NSUserDefaults に保存する

カスタム オブジェクトを含む保存済みの NSMutableArray を取得できません。アプリがクラッシュし、コンソールがhttp://pastie.org/1226822を報告します。これが私のオブジェクトの .h ファイルhttp://pastie.org/1226823です。これが私のオブジェクトの .m ファイルhttp://pastie.org/1226826です。データを保存する方法は次のとおりですhttp://pastie.org/1226830 . これが私のデータhttp://pastie.org/1226831を取得する方法です。前もって感謝します。

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

ios - iOS: ダウンロードした RSS メッセージをキャッシュする最良の方法

私は iPhone 用の RSS リーダーに相当するものを実装しています。一連の短いメッセージをダウンロードし、それらをリストでユーザーに表示します。各メッセージは、タイトル、本文、URL などを含む MyMessage オブジェクトにカプセル化されます。

最新の 20 件のメッセージを確実にキャッシュしたいと考えています。これを行う最善の方法は何ですか?キー付きアーカイブを使用し、MyMessage クラスに NSCoding プロトコルを実装させるだけでよいでしょうか。このアプローチを選択した場合、アーカイブを含むファイルに新しいメッセージを追加できますか (同様に、メッセージ数が 20 を超えたときに古いメッセージを削除できますか)?

基本的に私の質問は次のとおりです。キー付きアーカイブを使用するのは正しいアプローチですか? もしそうなら、必要に応じてアーカイブからメッセージを追加/削除するにはどうすればよいですか?

ありがとう!

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

iphone - NSKeyedUnarchiver + UITableViewController が正しく機能しない

NSKeyedArchiver を使用して UITabBarController の状態を保存しようとしています。タブ内には、UITableViewControllers を含む UINavigationControllers があります。

アーカイブは問題なく動作しているようです。

アーカイブを解除すると、UITableViewControllers で奇妙な問題が発生します。initWithCoder: が正しく呼び出され、そこで最初に行っていることは [super initWithCoder:] の呼び出しです。

tableView は正しく再作成されたように見え、delegate および dataSource プロパティが既に設定されています。initWithCoder: が super を呼び出して self を返すだけの場合、テーブル ビューは空になり、デリゲート メソッドは呼び出されません。self.tableView のデリゲートと dataSource プロパティを接続すると、コンテンツが正しく表示されますが、選択時に didSelectRowAtIndexPath が呼び出されず、tableView がリロードされるまでスクロールできません。

initWithCoder: 新しい UITableView を作成すると、すべてが機能しますが、これを行う必要があるとは思いません。

これを試みてはいけないことをしていますか、それとも、正しく機能させるために追加する必要がある明らかな何かが欠けていますか?

更新:コントローラー内で設定self.tableView = [decoder decodeObjectForKey:@"tableView"]するとスクロール/選択の問題が解決するようですが、結果の tableView は常に UITableViewStylePlain であり、プロパティが既に設定されているため、まだ間違っているようです。