私のゲームでは、次のコードを使用していくつかの UIImageView をプログラムで割り当てます。
blocks[1] = [[UIImageView alloc] initWithFrame: CGRectMake(200, y1, kBlockHeight, kBlockHeight)];
blocks[2] = [[UIImageView alloc] initWithFrame: CGRectMake(320, y2, kBlockHeight, kBlockHeight)];
blocks[3] = [[UIImageView alloc] initWithFrame: CGRectMake(440, y3, kBlockHeight, kBlockHeight)];
blocks[4] = [[UIImageView alloc] initWithFrame: CGRectMake(560, y4, kBlockHeight, kBlockHeight)];
blocks[1].backgroundColor = [UIColor blackColor];
blocks[2].backgroundColor = [UIColor blackColor];
blocks[3].backgroundColor = [UIColor blackColor];
blocks[4].backgroundColor = [UIColor blackColor];
[self.view addSubview: blocks[1]];
[self.view addSubview: blocks[2]];
[self.view addSubview: blocks[3]];
[self.view addSubview: blocks[4]];
正常に動作しますが、オブジェクトを削除して再起動しようとすると、
for (int i = 1; i<= 4; i++) {
blocks[i] = nil;
//ARC won't let me call [blocks[i] release];
NSLog(@"releasing blocks");
}
彼らはまだ画面にとどまります。それらは何とも対話しませんが、画面上に描画されたままです。これはなぜですか? オブジェクトを取り除くにはどうすればよいですか?