Iphone 为什么这个邮件字符串自动释放是多余的?

Iphone 为什么这个邮件字符串自动释放是多余的?,iphone,objective-c,memory-management,Iphone,Objective C,Memory Management,从a开始,我怎么知道下面的“邮件字符串”已经自动删除 // + (void) sendEmail:(NSString *) subject withBody:(NSString *)body { NSString *mailString = [NSString stringWithFormat:@"mailto:?@&subject=%@&body=%@", [subject stringByAddingPercentEscapesUsingEncoding:NS

从a开始,我怎么知道下面的“邮件字符串”已经自动删除

//
+ (void) sendEmail:(NSString *) subject withBody:(NSString *)body {
 NSString *mailString = [NSString stringWithFormat:@"mailto:?@&subject=%@&body=%@",
       [subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
       [body  stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];
 [mailString autorelease];
 }

因为mailString不是由[[NSString alloc]init]创建的;习惯用法它确实需要发布。

因为邮件字符串不是由[[NSString alloc]init]创建的;成语它确实需要被释放。

stringWithFormat:
是一个方便的函数,它返回一个自动释放的对象


我对这件事的评价太高了。它确实值得一读,可能不止一次。

stringWithFormat:是一个方便的函数,它返回一个自动释放的对象

我对这件事的评价太高了。它确实值得一读,可能不止一次。

您不知道该对象已自动删除

你所知道的是,释放它不是你的责任

您知道这一点,因为它是从一个名称不以“alloc”、“new”或“copy”开头的方法返回给您的,并且您从未对它调用过“retain”

重申Eiko所说的内容-阅读《苹果内存管理指南》-这一主题非常清楚。

您不知道对象已自动释放

你所知道的是,释放它不是你的责任

您知道这一点,因为它是从一个名称不以“alloc”、“new”或“copy”开头的方法返回给您的,并且您从未对它调用过“retain”

重申Eiko所说的——阅读《苹果内存管理指南》——这一主题非常明确