我可以使用以下代码修剪字符串:
-(void) aMethod {
// myStr from a text box
NSString *trimedStr = [mystr stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
...
// should I release trimedStr?
}
不确定结果trimedStr是否是自动释放字符串?我该怎么知道呢?
答案 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”这个词,所以你不拥有它,也不需要释放它。)