【发布时间】:2011-05-31 05:42:30
【问题描述】:
我正在尝试减少我的应用程序中的内存泄漏,因此我使用仪器来查找所有泄漏。我设法消除了几乎所有的泄漏,除了一个非常烦人的泄漏。
Instruments 告诉我,我有很多 NSPlaceholderstring 泄漏。 产生泄漏的代码(根据仪器)是:
if (nil == storedHash)
{
NSString *description = [[NSString alloc] initWithFormat:@"1 = %@ 2= %d", uId, service];
self.storedHash = description; // This line is the leak according to instruments
[description release];
description = nil;
}
return storedHash
storedHash 是这样定义的:
@property(copy) NSString* storedHash;
我尝试了所有我能想到的:
- 我使用了保留而不是复制
- 我使用了 NSString (stringWithFormat) 的自动释放分配
- 我尝试使用自动释放池包装代码
以上都没有改变泄漏。 (在某些情况下泄漏的类型发生了变化,但仍然存在泄漏)
有什么想法吗?
【问题讨论】:
标签: iphone memory-leaks instruments