NSString中的内存泄漏,NSArray

时间:2012-06-13 22:53:34

标签: objective-c memory-leaks nsstring nsarray instruments

我正在开发一个自定义框架(当然,还有一个CocoaTouch应用程序来测试它)。这是一个很大的框架,所以在这里发布它是不可能的(除了它不是开源,不是我的错,我发誓!)。

我已经尝试了很长一段时间,但我找不到答案:乐器指责我的应用程序有些漏洞。我真的是新手,所以,我不知道我是否误解了这些报道,但它似乎是像

这样的方法
[NSArray array]
[NSString stringWithCString:encoding:]
[NSString stringWithFormat:]
[NSString stringWithUTF8String:]
[_obj_rootAlloc]
[__NSArrayM]

是一些主要原因,这对我来说真的没有任何意义。

在此链接中,您可以找到“仪器运行”报告。任何人都可以请take a look,看看这是否可能意味着什么?

2 个答案:

答案 0 :(得分:4)

仪器报告泄漏对象的创建位置,而不是它们成为官方泄漏点的位置。在某个地方,您使用这些方法创建的对象要么被重新保留,要么在它们应该被释放时。

答案 1 :(得分:0)

实际问题是我对合成属性的假设。我有这样的事情:

@interface MyClass : NSObject

@property(nonatomic,retain) NSString *myProperty;

@end

在实施中:

@implementation MyClass
@synthesize myProperty=_myProperty;

@end

我认为@synthesize也会autorelease属性,但这是我的错误。我修理了它:

@implementation MyClass
@synthesize myProperty=_myProperty;

-(void)dealloc
{
    [_myProperty release];
    [super dealloc];
}

@end

感谢您的帮助!