是stringByTrimmingCharactersInSet:一个自动释放的字符串?

时间:2010-04-21 04:06:50

标签: iphone

我可以使用以下代码修剪字符串:

-(void) aMethod {
// myStr from a text box
NSString *trimedStr = [mystr stringByTrimmingCharactersInSet:
  [NSCharacterSet whitespaceAndNewlineCharacterSet]];
...
// should I release trimedStr?
}

不确定结果trimedStr是否是自动释放字符串?我该怎么知道呢?

2 个答案:

答案 0 :(得分:4)

fundamental rule of memory management in Objective-C

  

如果您拥有对象的所有权   使用名称为的方法创建它   以“alloc”或“new”开头   包含“复制”(例如,alloc,   newObject,或mutableCopy),或者如果你   发送一条保留信息。你是   负责放弃   您拥有的对象的所有权   释放或自动释放。 任何其他时间   你收到一个物品,你绝对不能   释放它。

由于名称不是以alloc或new开头而且不包含副本,因此它是自动释放的。

答案 1 :(得分:0)

是的,它是自动释放的。

运行,不要走到“内存管理编程指南”的Object Ownership Policy部分,了解如何辨别。

(简而言之,因为方法名称不是以“alloc”或“new”开头,或者包含“copy”这个词,所以你不拥有它,也不需要释放它。)