我目前正在使用一個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讓你的眼睛流血這一戰略?我是否在泄漏記憶?我能做些什麼更聰明?