在我的比赛,我以编程方式分配一些UIImageViews的用下面的代码:的界面元素设置为nil仍然存在于应用程序
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");
}
他们仍然留在屏幕上。他们不与任何东西互动,但仍然保持在屏幕上。为什么是这样的,我该如何摆脱这些物体?
不是你的问题的答案,但你可能想阅读关于[IBOutletCollection](http://www.bobmccune.com/2011/01/31/using-ios-4s-iboutletcollection/) –
我不喜欢使用IBOutletCollection,以便我仍然可以支持iOS 3. – Greg
您可能不需要支持iOS 3,它不再被广泛使用,最新的开发人员工具甚至不支持定位低版本的iOS版本。如果您像问题所示使用ARC,那么您的应用程序无论如何都不会在iOS 3上运行。 – Jim