問題タブ [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 投票する
2 に答える
996 参照

iphone - UserDefaults/KeyedArchiver のフラストレーション

課題ごとにカスタム課題オブジェクトを使用する宿題アプリに取り組んでいます。NSMutableArray (initWithArray 経由で NSArray にキャスト) を standardUserDefaults に保存しようとしていますが、配列の保存と再読み込みに問題があります。

新しい割り当てを追加するために選択できるテーブル ビューがあります (NewAssignmentViewController をロードします)。割り当てを保存すると、AssigmentsViewController の配列にプッシュされます。そして、割り当てを表示する UITableView をロードするたびに呼び出します。

関連するコードは次のとおりです。

助けてください。配列はロードされませんが、エラーは発生しません。UserDefault または KeyedArchiver に関する一般的なヒントをいただければ幸いです。

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

objective-c - NSKeyedUnarchiverオブジェクトが壊れていますか?

NSCodingプロトコルに準拠するカスタムクラスAssignmentの配列を含む、NSUserDefaultsに保存している配列があります。配列は適切に保存およびロードされ、配列の取得された最初のオブジェクトがクラスAssignmentのものであることを確認できます。配列内のAssignmentオブジェクトのivarにアクセスしようとすると、問題が発生します。クラッシュし、次のエラーが発生します。

これが、ユーザーのデフォルトに保存するために使用しているコードです。デバッグの目的で、保存されたオブジェクトも取得してチェックしていることに注意してください。

クラッシュが発生する場所であるtestAssignmentを割り当てるまでは、すべて問題ありません。誰かアイデアはありますか?

編集:これがAssignmentクラスのNSCodingメソッドです:

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

cocoa - NSWindowサブクラスで「アーカイブをサポートしていません」と表示されるのはなぜですか?

私は次のクラスを持っています:

...それから私はアーカイブを呼び出します。私のエンコード方法は次のとおりです。

...ただし、この[super encodeWithCoder:aCoder];ビットの結果、コンソールログに次のようになります。

... NSWindowのドキュメントによると、クラスはNSCodingプロトコルに準拠しているため、この問題が発生する理由がわかりません。

何か案は ?

---編集: NSWindowのクラスリファレンスは次のことを示しています。

...だけではありません"Conforms to NSCoding"-これは、NSResponderビットのみがNSCodingに準拠していることを意味していると思いますか?

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

iphone - アプリケーションの更新後も NSKeyedArchiver/NSCoder の使用は維持されますか?

NSKeyedArchiver と NSCoder のデータが (.txt ファイルとして) 永続化され、うまく機能しています。新しいビルドを iPhone にデプロイすると、テキスト ファイルがまだ存在します。つまり、上書きされません。

ただし、アプリケーションの iTunes 配信アップデートが利用可能になったときに、テキスト ファイルが保持されることを確認したいと考えています。はいと思いますが、確認したいだけです。

ありがとう

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

iphone - NSKeyedArchiver ファイル - データの損失

Iphone SDK 3.1.2 を使用。オブジェクトを使用してファイルに情報を保存していNSKeyedArchiverます。私は4つの鍵を持っています。で 4 つのキーすべてのファイルからデータを読み取りapplicationDidFinshLaunching、 でファイル (4 つのキーすべて) に書き戻しますapplicationDidTerminate。また、ユーザーが情報を保存すると、特定のキーのデータが書き込まれます。

最初にファイルがない場合は、アカウントリストに配列を割り当てます。これにより、アカウントを追加できます。

ファイルに保存されたデータが定期的に失われるという問題があります。アカウントリストなどの 1 つのキーが影響を受ける場合もあれば、お気に入りリストが影響を受ける場合もあります。4つすべてではなく、1つのキーだけを保存すると悪化するようです。organsierを使用してファイルを表示したところ、実際にデータが欠落しています。うまくいかないことも多いです。なぜそんなに矛盾しているのかわかりません。また、xcode でデバッガーを終了すると、ファイル データ全体ではなく、最近の変更のみが失われることが予想されます。NSKeyedArchiver の全体は、おそらく別の永続的なストレージ戦略を考えると非常に不安定に思えます。誰もがこのようなものに出くわします。

次に

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

iphone - NSKeyedArchiver と NSData を使用して Bluetooth 経由で UIImage を送信する

NSKeyedArchiver を使用して NSMutableData にエンコードした後、Bluetooth 経由で UIImage を送信できるかどうか疑問に思っていました。これは私が念頭に置いていたことです:

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

iphone - NSMutableArray Count でアプリがクラッシュするのはなぜですか?

問題が発生しました。アプリを起動するたびにクラッシュします。これが私のコードです。デバッガーは言う:[list count]アプリをクラッシュさせます。何も思いつきません。NSLog(@"%@", self.list);予想通り1つのアイテムをくれます...

}

開かれたアーカイブは次のように作成されました。

さらなるコードが必要な場合はお知らせください。どんな助けにもとても感謝しています:)

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

iphone - NSCoderを使用してNSArrayまたはNSDictionaryをエンコードします

NSCoderメソッドを使用できるかどうか疑問に思いました。

NSArrayまたはNSDictionaryのインスタンスをエンコードします。そうでない場合は、どのようにエンコードしますか?NSKeyedArchived / NSKeyedUnarchiverを使用して、GameKitを使用して電話間でデータを送信しようとしています。試しましたが、配列に保存した文字列を取得できないようです。私が作成したパケットクラスは、パケットタイプ整数と一緒に通過しますが、配列内のデータではないようです。

前もって感謝します!

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

cocoa - NSKeyedArchiverでアーカイブした後、NSImageのアニメーションが失われます

次の状況:

NSObjectサブクラス化されたオブジェクトのインスタンスがあります。そのプロパティの1つはNSImageです。オブジェクトをインスタンス化した後、それNSKeyedArchiverをデータに変換し、ネットワーク経由で送信し、アーカイブを解除してNSKeyedUnarchiver、画像をNSImageView(setAnimates:YES)に表示します。ここまでは問題ありません。画像は他のマシンで表示できます。問題:
アニメーションGIFを送信すると、アニメーション化されません。理由はわかりません...アニメーションが離れている理由はありますか?ありがとうございました!

アップデート

アーカイブする前にアニメーション画像を開くと、NSImageViewアニメーション化されます。問題はおそらくアーカイブです...

更新2

ネットワーク経由でデータを送信せずにワークフロー全体をテストしました。アーカイブとアーカイブ解除を再度行うだけです。私が疑ったように、それはNSKeyed(Un)Archiverの問題です。
アニメーションが失われます。しかし、これを防ぐために何をすべきでしょうか?