問題タブ [nscoding]

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 に答える
5282 参照

iphone - オブジェクト内のNSStringとしてのNSCoding

私の問題は、StoreオブジェクトのNSArrayを取得することです。すべてのNSStringプロパティがBadAccessエラーを引き起こしています。intプロパティとdoubleプロパティは正常に機能します。

store.h

store.m

これが、配列を保存および取得するための私のコードです。

私はすべてを試したように感じますが、デコードでどのように機能するかを理解できませんが、配列に入れた後に配列をループしているときはわかりません。

誰かアイデアはありますか?

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

objective-c - UITableViewController は NSCoding と互換性がありますか?

UITableViewController から継承した ah ファイルを取得して NSCoding に準拠させようとすると、ビューを切り替えることができません。

上記のコードを m ファイルに挿入すると、問題が発生します。何故ですか?

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

objective-c - NSCoder でアレイを復元する方法

これまでのところ、次のものがあります。

ここに配列をロードするコードを入れることになっていますか? 何をどこに置こうか?

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

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

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

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

iphone - NSCoding と整数配列

NSCoding を使用して、プリミティブ型の 10 個の値の配列をどのようにコーディング (およびデコード) しintますか? 各整数を個別に (for ループで) エンコードします。しかし、私の配列が 100 万個の整数を保持しているとしたらどうでしょうか? ここで for ループを使用するより満足のいく代替手段はありますか?

編集(最初の回答後):デコードしますか?(@ジャスティン:あなたの答えにチェックを入れます。)

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

ios - initFromFileメソッドを使用して作成されたオブジェクトを解放するとクラッシュする

NSCodingに準拠する「DateTracker」というオブジェクトを作成したので、encodeWithCoderメソッドとinitWithCoderメソッドが含まれています。私がそれを初期化するとき、私は次のように呼びます:

initFromFileメソッドは次のようになります。

しかし、私が電話しようとすると

アプリがクラッシュします。

パフォーマンスツールを使用してアプリを実行してメモリリークをチェックすると、このオブジェクトを解放していないというメッセージが表示されます。

私が間違っていることについて何か考えはありますか?

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

iphone - NSCoding が UIImageView のフレームを保存していないようです

UIImageView サブクラス化されたオブジェクトの 'frame' または 'center' プロパティを NSCoding に格納できないようです。カスタムプロパティと標準クラスプロパティ(「hidden」など)の両方を保存しているようですが、「frame」または「center」プロパティは保存していないようです。UIImage をアーカイブしようとはしていません (これは NSCoding に準拠していないため)。

必要に応じてコードを投稿しますが、「フレーム」を設定する以外に特別なことはしていません。

何か案は?

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

objective-c - NSCodingプロトコルの質問

モデルクラスにアーカイブ(NSCoding)プロトコルを追加したいので、メソッドencodeWithCoder:(NSCoder*)coderとの両方を実装しますinitWithCoder:(NSCoder*)coder。MyModelClassには2つのインスタンス変数(NSStringとNSImage)があるため、encodeObject:(id)object forKey:(NSString*)stringメソッドを使用してオブジェクトと特定のキーの値をエンコードします。しかし、私はエラーが発生し続けます:

*** -encodeObject:forKey: only defined for abstract class. Define -[NSArchiver encodeObject:forKey:]!

これがNSCodingメソッドの私のコードです:

そして、これは私が私のコントローラークラスでそれらを呼び出す方法です:

withを変更するencodeObject:(id)obj forKey:(NSString*)strencodeObject:(id)obj、エラーは停止しますが、結果として、アーカイブされたデータはインスタンス変数値(cmiiw)をコピーしません。私はこれについて何かが恋しいですか?

ありがとう。ヘッブの法則

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

objective-c - カスタム オブジェクトの NSMutableArray を含む NSMutableArray を NSUserDefaults に保存する方法

カスタム クラスに NSCoding を実装することで、カスタム オブジェクトの NSMutableArray を NSUserDefaults に保存できました。ただし、これらの配列の NSMutableArray を保存したいと考えています。これを行おうとすると、コンパイラが文句を言います。これはどのように行うことができますか?

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

objective-c - Quartz 参照のコピーとシリアル化のベスト プラクティス

Cocoa に Quartz-2D 参照 (色、塗りつぶしパターン、グラデーション、および影を記述する) を含むオブジェクトがあります。NSCodingオブジェクトにプロトコルを実装したいので、これらの不透明な Quartz-2D 構造をシリアル化する必要があります。

可能な解決策は次のとおりです。

  • 必要なときにいつでもデータ構造を最初からセットアップできるようにする、オブジェクトの一連のプロパティを定義します。これらは簡単にシリアル化できます。例:赤、緑、青、およびアルファの 4 つの float を格納してから、 を使用しますCGColorCreate短所:情報の重複により、潜在的な一貫性と (これまでのところマイナーな) スペース消費の問題。コンポーネントが変更されるたびに Quartz 構造を再作成するプロパティ セッターを手動で記述する必要があります。それは私のコードを大幅に肥大化させます。

  • Quartz 関数を使用してプロパティを読み取ります。例:色に使用CGColorGetComponentsします。短所:色には効果があるようです。しかし、他の構造には同等の機能がないため、グラデーション、シェーディング、シャドウなどに対してこれがどのように機能するかわかりません.

  • 生の不透明な構造からプロパティを直接読み取ります。欠点:ドキュメントにあるように、構造は不透明であると想定されています。そのため、内部で何かが変更された場合、私のコードは壊れます。(Apple がそのような機能を提供することになった場合、そのような機能を提供しなかったことは確かCGColorGetComponentsです。) さらに、CGFunctionRef内部の a のようなものは、CGShadingRef本当にトラブルを求めているでしょう。

Quartz 構造をシリアライズするためのベストプラクティスは何ですか?