【发布时间】:2011-04-19 08:37:12
【问题描述】:
在这里,我在方法“test”中为“tempString”使用了自动释放。根据规则,我应该在 main 中使用“[temp retain]”。但我没有使用它。它仍然可以正常工作并打印输出。那么“留”的需要是什么?谁能告诉我原因?提前致谢。
-(NSMutableString *) test : (NSMutableString *) aString{
NSMutableString *tempString=[NSMutableString stringWithString:aString];
[tempString appendString:@" World"];
return tempString;}
int main (){
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
MemoryMgmt *memoryMgmt=[[MemoryMgmt alloc] init ];
NSMutableString *str1 =@"Hello";
NSMutableString *temp = [memoryMgmt test: str1];
NSLog(@" %@",temp);
[pool drain];
return 0;
}
【问题讨论】:
标签: iphone objective-c memory-management retain autorelease