私はまだARC内部で100%ではありません。
私が明確にしたいいくつかの例:
someObjectToReturn = [[SomeClass alloc] init];
メソッド内に割り当てられて返されるのはどうなりますか?たとえばsomeObjectに割り当てられている場合someObjectToReturn
、someObjectToReturnはいつリリースされますか?someObjectが無効になっている場合、またはsomeObjectToReturnを自動解放プールに追加する必要がある場合はどうなりますか?
もう1つのケースは、オブジェクトの配列がnilledの場合、すべてのオブジェクトが解放されますか?
最後に、コピーされたブロックオブジェクトを解放するのに適した場所はどこですか?または、実行後もブロックは解放されますか?コピーされたブロックが自動解放プールに追加された場合、いつそのプールを排出しますか?10個のブロックがあり、それぞれが自動解放プールに追加されているとしましょう。それをすぐに排出すると、実行中のブロックが停止します。ブロックのnillingをメインスレッドにディスパッチするなど、コピーされたブロックをそれ自体の内部からnillingできますか?