の更新に失敗します問題は、これがすべてコンパイルされ実行されている間に、ブロックが戻ったときにブロックのアクションがすぐに忘れられることです。 [iWillNotDoWhatImSupposedTo]ランニングのプリントアウトは、次のとおりです。Objective Cの間接的なポインタは、私がこのように、ブロックに間接的なポインタを結合し、直接ポインタに後で割り当てのためのブロックを返す関数を持っている直接ポインタ
directPointer is pointing to: 0x0
&directPointer is pointing to: 0x7fff5ce1d060
--- callback execution starts here
indirectPointer is pointing to: 0x7fff5ce1d050
*indirectPointer is pointing to: 0x0
After assignment: indirectPointer is pointing to: 0x7fff5ce1d050
After assignment: *indirectPointer is pointing to: 0x61800001e1d0
--- callback returns here, and the contents of the pointer is lost
after running callback directPointer is pointing to: 0x0
after running callback &directPointer is pointing to: 0x7fff5ce1d060
私はこのコールバックを動作させることができる方法のための任意の洞察力?
どのように起こっているのかよく分かりませんが、直接ポインタのあるアドレスがindirectPointerのアドレスと異なっていることに興味があります。 –
実際のコードでは、設定するivarのアドレスを渡しますか?それ以外の場合は、ブロックで新しいインスタンスを直接返すようにしてください。 –