Objective-C为iphone分配变量问题

时间:2010-12-28 15:40:48

标签: iphone objective-c

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

两者都很好。这只是个人偏好。我通常以#2的方式执行,确保将其添加到自动释放池中,这样我们就不会创建内存泄漏:

self.view.backgroundColor = [[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Background.png"]] autorelease];

答案 2 :(得分:0)

如果您使用#2,则需要向对象发送“autorelease”消息,将其添加到自动释放池中,否则,您将遇到内存泄漏。

所以

self.view.backgroundColor = [[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Background.png"]] autorelease];

记住合同,你分配/ init,你释放或添加到自动释放池。

编辑:正确,另外两个答案提到了苹果所谓的“便利方法”,它创建了一个已经添加到自动释放池中的对象。