2009-04-17 53 views
0

我目前正在使用一個NSMutableString實例變量,它是NSURLConnection的委託類。變量是負責構建數據的字符串,是一個從委託方法返回:NSMutableString的這種用法是內存泄漏嗎?

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 

的字符串,「富」,有一個屬性與保留設置就可以了。它是在我的類init方法alloc'd非常簡單,在這種方式:

dataString = [[NSMutableString alloc] init]; 

它是在類dealloc方法發佈。

在連接:didReceiveData :,我使用var這樣的:

NSString *tmpString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    [dataString appendString:tmpString]; 
    [tmpString release]; 

現在,這就是事情變得棘手。由於我設置NSURLConnection委託的類是單例(它主要處理NSURL *類型調用),因此我需要考慮如何重新使用我的對象。爲此,在我connectionDidFinishLoading:I類有以下幾點:

// cache away data currently in dataString. 
[dataString release]; 
dataString = [[NSMutableString alloc] init]; 

是否處理我的dataString讓你的眼睛流血這一戰略?我是否在泄漏記憶?我能做些什麼更聰明?

回答