2010-09-17 70 views
1

我在开发一个应用程序,其中我发现内存泄漏以下方法如何消除泄漏?我如何解决内存泄漏问题?

- (id)initWithString:(NSString *)str attributes:(NSDictionary *)attributes 
{ 

    if ((self = [super init])) 
    { 
     _buffer = [str mutableCopy]; 
     _attributes = [NSMutableArray arrayWithObjects:[ZAttributeRun attributeRunWithIndex:0 attributes:attributes], nil]; 
    } 

    return self; 

} 

我创始泄漏靠近这条线 “_buffer = [STR mutableCopy];”

在分配堆栈跟踪我发现同时内存分配增加为一个CFString。

谢谢。

+1

请特别注意格式化您的代码。你的一点努力可以帮助我们帮助你。 – 2010-09-17 15:10:47

回答

2

我想你不会有内存泄漏,如果你把[_buffer release]dealloc方法。你有一个分配,因为对于包含诸如allocretaincopy之类的东西的每种方法...都会创建一个新的对象实例。在这种情况下没关系。

另一件你不用担心的事情是内存崩溃的_attributes对象。您拥有一个自动发布的对象,并且下次尝试使用它时,它可能已被释放。