インスタンスを割り当てて、内部的に保持している他のものに割り当てられた直後に解放するケースがたくさんあります。例えば自動リリースまたは直後にリリースする方が良いですか?
、
UIView *view = [[UIView alloc] initWithFrame...]; [self addSubView:view]; [view release];
私たちは右の後に自動解放ではなく、リリースと一緒に行くことを示唆している人を聞いたことがあります。
したがって、上記のようになります。
UIView *view = [[[UIView alloc] initWithFrame...] autorelease]; [self addSubView:view];
ここでのベストプラクティスは何ですか?長所と短所?
+1。 autoreleaseはパフォーマンス(一般的でないノン・ループ・コードの数字でバックアップされたことはめったにありませんでした)で多くの浮き沈みを得ますが、コードがリファクタリングされたときにも多くのリークが保存されます。低レベルのルーチンでは、より高いレベルで大きなループで呼び出されるかどうかわからないので、より頻繁にリリースを使用します。しかし、releaseを使うつもりならば、変数がまだスコープ内にあれば、すぐに変数をnilに設定しなければなりません。オブジェクトを解放しないでくださいが、それにポインタはあります。 –