2010-09-17 62 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對象。您擁有一個自動發佈的對象,並且下次嘗試使用它時,它可能已被釋放。