【发布时间】:2011-06-27 18:57:36
【问题描述】:
我需要对 iPhone 内存管理进行一些说明。
这里是设置器的示例;
1).
-(void)setValue:(NSString*)input{
[value autorelease];
value = [input retain];
}
在这个例子中,为什么我们必须使用自动释放? 我们可以像下面这样使用吗?
if(value)
[value release];
value = [input retain];
在第一个例子中,为什么我们不应该释放input的内存
2)。
如果我使用以下语句; value 的保留计数是多少
NSString *value;
value = @"welcome";
在上述声明之后,我只是想再设置一个值。那么会发生什么呢?
eg:
value = @"For testing";
3)。 2) 和 3) 有什么区别?
NSString *value;
value = [input1 retain];
...
...
value = [input2 retain];// Now what is the retain count for value
4)。 如果我使用以下语句,为什么应用程序会崩溃?
NSString *value = [[[NSString alloc] init] autorelease];
...
...
提前谢谢..
【问题讨论】:
标签: ios memory-management autorelease