0

この質問に加えて: NSRunLoop は奇妙なセレクターを受け取っています。可能な競合状態のおふざけ?- UIGestureRecognizer の割り当てが解除され、メッセージを受信して​​いることが判明した場合、ゾンビによって報告されたものかどうかを確認するために、GR の 1 つのアドレスを出力しました。

コード内の印刷メッセージにより、最初に探していたクラッシュを引き起こすことができなくなりました。印刷メッセージを削除すると、再び発生する可能性があります。

割り当て解除/保持/解放の問題を扱っているので、このオブジェクトを出力することで参照される可能性があるかどうか、誰か教えてもらえますか? もしそうなら、それは私の元の問題について何を教えてくれますか? リリースが多すぎる?リリース早すぎない?

4

2 に答える 2

2

への呼び出しがNSLogバックグラウンド スレッドからのものである場合、イベントのシーケンスが変更されている可能性があります。NSLog何らかの方法で stderr への書き込みを同期します。正確な方法はわかりませんが、1 つの結果がオブジェクトの有効期間の変更になる可能性があると考えるのは大げさではありません。

それが元の問題について何を伝えているかというと、それは Dave DeLong の診断を裏付けているように思えます: 古いポインタを使おうとしているのです。これは、呼び出しを行うコードのビットが適切に保持されていないか、他のビットが過剰に解放されていることを意味します。

于 2010-08-26T17:13:16.837 に答える
1

Mac と iOS の開発に 10 年間携わってきましたが、NSLog が参照カウントに悪いことをしたことは一度もありませんでした。それが私が確かに言えるすべてです。

于 2010-08-26T16:58:09.417 に答える