プログラムでUILabelを作成した場合、後でリリースする必要がありますか?例えば、
UILabel *label = [[UILabel alloc] initWithFrame:...];
[self.view addSubView:label];
[label release]; // <-- is this needed?
リリースラインを含むこのスレッドを見つけましたが、これは新しいiOSバージョンでは動作が異なることを理解しています。
読んでくれてありがとう。
プログラムでUILabelを作成した場合、後でリリースする必要がありますか?例えば、
UILabel *label = [[UILabel alloc] initWithFrame:...];
[self.view addSubView:label];
[label release]; // <-- is this needed?
リリースラインを含むこのスレッドを見つけましたが、これは新しいiOSバージョンでは動作が異なることを理解しています。
読んでくれてありがとう。
はい、ARCを使用していない限り、リリースする必要があります。
この場合alloc
、保持カウントは1です。ビューを実行すると
、ラベル:保持カウントは2になります。
したがって、その時点で、保持カウントのバランスをとることができます。これで、保持カウントは1になり
ます。不要になったときにreleaseを呼び出します。
その場合、ラベルの保持カウントは0に低下し、0になり、メモリが解放されます。addSubView
retain
release
alloc
own
self.view
deallocated
プロジェクトがARC(自動参照カウント)を使用するように設定されている場合、への呼び出しを追加しようとするとエラーが発生しますrelease
。その行を追加しようとしてエラーが発生しない場合は、ARCを使用していないため、メモリリークを回避するためにその行が必要です。