問題タブ [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.
iphone - オブジェクト内のNSStringとしてのNSCoding
私の問題は、Store
オブジェクトのNSArrayを取得することです。すべてのNSStringプロパティがBadAccess
エラーを引き起こしています。intプロパティとdoubleプロパティは正常に機能します。
store.h
store.m
これが、配列を保存および取得するための私のコードです。
私はすべてを試したように感じますが、デコードでどのように機能するかを理解できませんが、配列に入れた後に配列をループしているときはわかりません。
誰かアイデアはありますか?
objective-c - UITableViewController は NSCoding と互換性がありますか?
UITableViewController から継承した ah ファイルを取得して NSCoding に準拠させようとすると、ビューを切り替えることができません。
上記のコードを m ファイルに挿入すると、問題が発生します。何故ですか?
objective-c - NSCoder でアレイを復元する方法
これまでのところ、次のものがあります。
ここに配列をロードするコードを入れることになっていますか? 何をどこに置こうか?
objective-c - このコードは、カスタムオブジェクトの配列で使用できますか?
カスタムオブジェクトの配列をNSCodingプロトコルに準拠させると、上記は機能しますか?カスタムクラスと、カスタムオブジェクトの配列を保持するView Controllerの両方を、NSCodingプロトコルに準拠させる必要がありますか、それともカスタムクラスのみに準拠させる必要がありますか?NSKeyedArchiverをどこかで使用する必要がありますか?
iphone - NSCoding と整数配列
NSCoding を使用して、プリミティブ型の 10 個の値の配列をどのようにコーディング (およびデコード) しint
ますか? 各整数を個別に (for ループで) エンコードします。しかし、私の配列が 100 万個の整数を保持しているとしたらどうでしょうか? ここで for ループを使用するより満足のいく代替手段はありますか?
編集(最初の回答後):デコードしますか?(@ジャスティン:あなたの答えにチェックを入れます。)
ios - initFromFileメソッドを使用して作成されたオブジェクトを解放するとクラッシュする
NSCodingに準拠する「DateTracker」というオブジェクトを作成したので、encodeWithCoderメソッドとinitWithCoderメソッドが含まれています。私がそれを初期化するとき、私は次のように呼びます:
initFromFileメソッドは次のようになります。
しかし、私が電話しようとすると
アプリがクラッシュします。
パフォーマンスツールを使用してアプリを実行してメモリリークをチェックすると、このオブジェクトを解放していないというメッセージが表示されます。
私が間違っていることについて何か考えはありますか?
iphone - NSCoding が UIImageView のフレームを保存していないようです
UIImageView サブクラス化されたオブジェクトの 'frame' または 'center' プロパティを NSCoding に格納できないようです。カスタムプロパティと標準クラスプロパティ(「hidden」など)の両方を保存しているようですが、「frame」または「center」プロパティは保存していないようです。UIImage をアーカイブしようとはしていません (これは NSCoding に準拠していないため)。
必要に応じてコードを投稿しますが、「フレーム」を設定する以外に特別なことはしていません。
何か案は?
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*)str
とencodeObject:(id)obj
、エラーは停止しますが、結果として、アーカイブされたデータはインスタンス変数値(cmiiw)をコピーしません。私はこれについて何かが恋しいですか?
ありがとう。ヘッブの法則
objective-c - カスタム オブジェクトの NSMutableArray を含む NSMutableArray を NSUserDefaults に保存する方法
カスタム クラスに NSCoding を実装することで、カスタム オブジェクトの NSMutableArray を NSUserDefaults に保存できました。ただし、これらの配列の NSMutableArray を保存したいと考えています。これを行おうとすると、コンパイラが文句を言います。これはどのように行うことができますか?
objective-c - Quartz 参照のコピーとシリアル化のベスト プラクティス
Cocoa に Quartz-2D 参照 (色、塗りつぶしパターン、グラデーション、および影を記述する) を含むオブジェクトがあります。NSCoding
オブジェクトにプロトコルを実装したいので、これらの不透明な Quartz-2D 構造をシリアル化する必要があります。
可能な解決策は次のとおりです。
必要なときにいつでもデータ構造を最初からセットアップできるようにする、オブジェクトの一連のプロパティを定義します。これらは簡単にシリアル化できます。例:赤、緑、青、およびアルファの 4 つの float を格納してから、 を使用します
CGColorCreate
。短所:情報の重複により、潜在的な一貫性と (これまでのところマイナーな) スペース消費の問題。コンポーネントが変更されるたびに Quartz 構造を再作成するプロパティ セッターを手動で記述する必要があります。それは私のコードを大幅に肥大化させます。Quartz 関数を使用してプロパティを読み取ります。例:色に使用
CGColorGetComponents
します。短所:色には効果があるようです。しかし、他の構造には同等の機能がないため、グラデーション、シェーディング、シャドウなどに対してこれがどのように機能するかわかりません.生の不透明な構造からプロパティを直接読み取ります。欠点:ドキュメントにあるように、構造は不透明であると想定されています。そのため、内部で何かが変更された場合、私のコードは壊れます。(Apple がそのような機能を提供することになった場合、そのような機能を提供しなかったことは確か
CGColorGetComponents
です。) さらに、CGFunctionRef
内部の a のようなものは、CGShadingRef
本当にトラブルを求めているでしょう。
Quartz 構造をシリアライズするためのベストプラクティスは何ですか?