请帮助新手进行iPhone开发。在我的应用程序中,我经常这样做,而Instruments将其显示为泄漏。这样做的正确方法是什么?
我正在尝试将数字数据重新格式化为字符串,以便在NSMutableDictionary对象中使用。所以我想如果我做这样的事情会很棒:
[myDict setObject:[NSString stringWithFormat:@"%d", section] forKey:@"Category"];我讨厌不得不写3行来做这个……
NSString *cat = [NSString stringWithFormat:@"%d", section];
[myDict setObject:cat forKey:@"Category"];
[cat release];如果有必要,我会这样做,但对于这种短暂的使用,最佳实践是什么?
发布于 2011-04-26 03:28:45
你不需要释放它。因为stringWithFormat不是以alloc、init、new、copy或mutableCopy开头的,所以除非您显式地保留了它,否则您没有责任释放它。
当Instruments显示泄漏时,它会显示泄漏对象的分配位置,但不一定是实际导致泄漏的代码。我怀疑你在泄露myDict,因此里面的所有对象也都被泄露了。
发布于 2011-04-26 03:27:56
你永远不会释放它。它已经自动发布了。
您只能释放通过名称以+alloc、+new -copy、-mutableCopy或-retain开头的方法提供给您的对象。如果名称以任何其他名称开头,则您不拥有它,也不负责发布它。
https://stackoverflow.com/questions/5782256
复制相似问题