Ram*_*Ram 2 iphone memory-leaks objective-c
在我的程序中,我试图在字典中设置对象.值来自另一个类,因此我在处理它之前复制了这些值.
在分析代码时,我得到了泄漏.
-(void)giveInput:(NSString *)userInput ForPlaceholder:(NSString *)placeholder{
[inputValue setObject:[userInput copy] forKey:[placeholder copy]];
}
Run Code Online (Sandbox Code Playgroud)
如何释放userINput和Placehoder对象保留计数?
根据" 内存管理编程指南",您应该release或至少autorelease是从中获得的任何引用alloc,new或者copy.
在你的情况下,尝试[userInput copy]改为[[userInput copy] autorelease]; 同样的placeholder.
编辑:请注意,默认NSDictionary和NSMutableDictionary类已经复制键并保留值 - 有关更多详细信息,请参阅"内存管理编程指南"以及NSMutableDictionary类参考.因此,没有必要[placeholder copy],如果你不打算创建一个单独的副本userInput,也没有必要copy.
| 归档时间: |
|
| 查看次数: |
2108 次 |
| 最近记录: |