init、alloc、copy、またはmoveというキーワードを使ってオブジェクトを作成しなければならないと思います。私はこのキーワードを使用しないコードでオブジェクトを作成するかもしれないので、私はそれらを正しくリリースする必要はないと思いますか?オブジェクトがリリースされる時期
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Hello" forState:UIControlStateNormal];
button.frame = CGRectMake(40.0, 200.0, 170.0, 40.0);
[self.view addSubview:button];
私のコードでこれらのキーワードを使用していないので、私はそれを正しくリリースしないでください。そのオブジェクトはいつリリースされますか?私はメモリ管理のものと少し混乱しています。
私は一度それを保持したら、後でそれを解放する必要がありますか? (後で使用する必要がある場合に備えて)、2回保持すると2回リリースする必要がありますか? –
修正 - オブジェクトのメモリは、保持カウントがゼロになると解放されます。オブジェクトを保持するたびに、保持カウントがインクリメントされます。オブジェクトを解放するたびに、保持カウントがインクリメントされます。オートレリースされたオブジェクトは、システムが後で自動的に解放するオブジェクトです。あなたがどこかにそれを保持していなければ、保持カウントは1になるので、システムがそれを解放するとすぐに解放されます。 –
あなたはそれを持っている! – mattacular