問題タブ [nsarchiving]
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.
objective-c - NSKeyedArchiverでさまざまなインスタンスを検索する
私は現在、NSKeyedArchiverで使用されるカスタムクラスを使用するこのブログを使用しています。すべてが正しいように見えますが、「学生」のさまざまなインスタンスを取得する方法を考えています。
http://keeptheseinmind.blogspot.com/2011/10/nskeyedarchiver-tutorial.html
このチュートリアルでは、アプリケーションが終了するたびに、カスタムクラス「students」の新しいインスタンスが作成されます。そして、NSKeyedArchiver内にはこれらの「学生」インスタンスが多数あると想定しましたが、アクセスできるのはそのうちの1つだけです。
ディスクに保存する
ディスクからの読み込み
編集:
私は間違っています。アプリケーションが終了するたびに、インスタンスが互いに上書きし合っています。面白い...
ただし、私の目標は、1つまたは複数のNSKeyedArchiver内に「学生」のインスタンスを多数作成することです。任意のアイデアをいただければ幸いです。
ios - 実行時に使用するデータの保存
私が持っている .xlsx (MS Excel ファイル) からのユーザー データを表示する、ビルドしようとしている iOS アプリがあります。ファイルには約 11,000 行あり、1 行あたり 20 列です。各行を のサブクラスに変換するパーサーを作成しましたNSObject
。各列はインスタンス変数です。NSCoding
準拠させ、各インスタンスを に追加しNSDictionary
、そのキーを元のファイルの最初の行にして、アーカイブしました。私の問題は、最大 20 個のオブジェクトまたはその中のオブジェクトにアクセスするために、そのような大規模な を解凍したくないということですNSDictionary
。いつでも必要になる可能性があります。
問題は、このような方法でこのデータのチャンクを保存するにはどうすればよいかということです。ヒープに 11,000 個のオブジェクトが存在せず、アプリの実行中に必要なものをアプリに読み込むことができますか?
objective-c - Objective-C のオブジェクト内のオブジェクトをアーカイブする
読んでくれてありがとう、
PS: 私は初心者なので、残念ながらこれはあまり得意ではありませんが、助けていただければ幸いです。
したがって、基本的には、 Account オブジェクトを含む大きな配列をアーカイブしたいと考えています。
1. NSString 形式のユーザー名、
2.NSNumbers で満たされた暗号化されたパスワード配列、および
- 3.サービス データ オブジェクトで満たされたデータ配列。
サービス データ オブジェクトには次のものがあります。
- 暗号化された serviceType (NSNumbers で満たされた NSArray) (ユーザー名とパスワードが対象とするサービスに関係なく)
- 暗号化されたユーザー名 (NSNumbers で満たされた NSArray)
- 暗号化されたパスワード (NSNumbers で満たされた NSArray)
奇妙なことに、これをアーカイブして保存しようとすると、2 つのエラーが発生します。Account クラスのデータ配列にサービス データ オブジェクトを追加できなくなり、次のエラー メッセージが表示されます (または、少なくとも NSTableView には表示されませんが、存在すると表示されます)。
2つ目は、アカウントクラスからユーザー名とパスワードでログインしようとすると、ユーザー名とパスワードの最初のカップルと最後のカップルの NSNumbers が正しく取得されますが、パスワードの残りの NSNumbers は数兆または何か、何がうまくいかないのだろうと思っています。どんな助けでも大歓迎です。
以下は、インスタンス変数のコード、NSKeyedArchiver と unarchiver の使用方法、およびファイルの保存と読み込みの方法です。繰り返しますが、私を助けてください、私はしばらくこれに固執しており、これは一種の最後の手段です. 何が起こっているのかわかりません!
アカウントクラス:
H ファイル:
完全な M ファイル:
サービスデータ クラス:
H ファイル:
M ファイル:
LOADING FILE(filePath が与えられます):
ファイルを保存しています:
ios - アーカイブされていないオブジェクトには、アーカイブされたオブジェクトのクラス記述子がありません
単体テストを書いていて、NSKeyedArchiver/NSKeyedUnarchiver の奇妙な動作に遭遇しました。以下は失敗したテストです。私は間違っていますか?
これは簡単なプロジェクトです: https://github.com/genesislive2007/Archiving-Headache
アップデート
いくつかのログ:
Archiving Headache[1638:60b] 文字列としてのクラス: Drug
Archiving Headache[1638:60b] 静的クラスのアドレス: 0x8bfd1d0
Archiving Headache[1638:60b] オブジェクト クラスのアドレス: 0x357c
上記のように、クラス記述子へのアドレスが異なります。
ios - NSKeyedArchiver と iCloud
-(void)archive
現在、私のアプリケーションには、アプリケーションのドキュメント ディレクトリに自身をアーカイブするメソッドを持つ最上位オブジェクトがあります。
ファイル パスを変更することで、アーカイブをローカルではなく iCloud に単純に保存できるかどうか疑問に思っています。
私は iCloud の使用についてかなり読んだことがありますが、この質問が解決されているのを見たことがありません。無理だとは思いますが、確実に知りたいです。
ありがとうございました。