1

NSMutableData オブジェクトを使用して、シリーズ データを表す 32 バイトの構造体のリストを格納します。これらのシリーズは、拡張、追加、整列などの可能性があります。不要なオブジェクトの割り当てを節約するために、新しいオブジェクトを割り当てるのではなく、既存のオブジェクトにバイトを拡張して追加しようとします。

今日のシミュレーターで奇妙な動作に気付きました: 1) setLength と increaseByLength を使用しても、すべての新しいバイトが常にゼロになるとは限らず、2) 変更後にこれらのオブジェクトを使用するとクラッシュしました。クラッシュはすべて非常に異なる領域で発生しましたが、常に EXC_BAD_ACCESS でした。かなりのデバッグを行った後、mutableCopy を介して操作するための新しいオブジェクトを割り当て、完了したらそれらをオブジェクト属性に割り当てました。それは私が抱えていたすべての問題を解決しました。

*バックグラウンド スレッドでこれらのオブジェクトを操作していますが、すべての操作を同期ブロックでラップしており、問題のオブジェクトで競合状態を観察できませんでした。

誰かが同様の奇妙さに気づいたことがありますか?

ありがとう。

4

1 に答える 1

0

これに対する回答を受け取っていないので、解決策をフォローアップすると思いました。必要に応じて新しい NSData / NSMutableData オブジェクトを再割り当てし、メモリを NSData オブジェクトにラップする前に直接操作することになりました。

于 2012-09-20T20:03:48.710 に答える