代码之家  ›  专栏  ›  技术社区  ›  buley

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

  •  1
  • buley  · 技术社区  · 15 年前

    related thread ,我怎么知道下面的“mailString”已经自动删除了?

    //
    + (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];
     }
    
    3 回复  |  直到 8 年前
        1
  •  5
  •   Eiko    15 年前

    stringWithFormat: 是一个返回自动释放对象的便利函数。

    我不能再推荐这家公司了 Memory Management Guide 足够高了。它 值得一读,可能不止一次。

        2
  •  2
  •   ennuikiller    15 年前

    由于mailString不是由[[NSString alloc]init];习惯用法创建的,因此需要释放它。

        3
  •  0
  •   Jeff    15 年前

    你知道吗

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

    重申爱子所说的-阅读苹果内存管理指南-这是非常明确的主题。