Iphone 为什么这个邮件字符串自动释放是多余的?
从a开始,我怎么知道下面的“邮件字符串”已经自动删除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
//
+ (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所说的——阅读《苹果内存管理指南》——这一主题非常明确