请帮助新手进行iPhone开发。在我的应用程序中,我做了很多,仪器将其显示为泄漏。这样做的正确方法是什么?
我正在尝试将数值数据重新格式化为字符串,以便在NSMutableDictionary对象中使用。所以我觉得如果我这样做会很棒:
[myDict setObject:[NSString stringWithFormat:@"%d", section] forKey:@"Category"];
我不想写3行来做...
NSString *cat = [NSString stringWithFormat:@"%d", section];
[myDict setObject:cat forKey:@"Category"];
[cat release];
如果我必须这样做,但这种短暂使用的最佳做法是什么?
答案 0 :(得分:8)
您无需发布它。由于stringWithFormat
不是以alloc
,init
,new
,copy
或mutableCopy
开头,因此您不负责发布它除非你明确保留它。
当仪器显示泄漏时,它会显示泄漏对象的分配位置,但不一定是实际导致泄漏的代码。我怀疑你正在泄漏myDict
,因此它内部的所有物体都会泄漏。
答案 1 :(得分:3)
你永远不会释放它。它已经自动释放了。
您只会发布通过名称以+alloc
,+new
-copy
,-mutableCopy
或-retain
开头的方法提供给您的对象。如果名称以其他任何内容开头,则您不拥有它,也不负责释放它。