在标准的Objective-C手动内存管理下,在this question中建议使用以下方法初始化释放NSArray的方法:
imageArray = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
nil];
被用来
[imageArray release];
imageArray = nil;
鉴于我们不再可以在自动引用计数下使用
-release
,在ARC下释放此NSArray的建议方法是什么? 最佳答案
如果imageArray是对象的ivar(也许不是安全的假设),则应使用访问器将数组设置为nil;否则,数组为null。访问器将负责释放数组及其所有成员:[self setImageArray:nil];
如果您需要清理包含多个成员的数组,但要在该ivar中准备好有效的数组,以便其他方法可以安全地向其发送消息,则可以使用以下命令:[self setImageArray:[[NSArray alloc] init]];
它将用新的空数组替换旧的数组。