我正在开发一个自定义框架(当然,还有一个CocoaTouch应用程序来测试它)。这是一个很大的框架,所以在这里发布它是不可能的(除了它不是开源,不是我的错,我发誓!)。
我已经尝试了很长一段时间,但我找不到答案:乐器指责我的应用程序有些漏洞。我真的是新手,所以,我不知道我是否误解了这些报道,但它似乎是像
这样的方法[NSArray array]
[NSString stringWithCString:encoding:]
[NSString stringWithFormat:]
[NSString stringWithUTF8String:]
[_obj_rootAlloc]
[__NSArrayM]
是一些主要原因,这对我来说真的没有任何意义。
在此链接中,您可以找到“仪器运行”报告。任何人都可以请take a look,看看这是否可能意味着什么?
答案 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
感谢您的帮助!