В настоящее время я использую переменную экземпляра, которая является NSMutableString в классе, который является делегатом для NSURLConnection. Переменная отвечает за построение строки данных, возвращаемых методом делегата:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
Строка 'foo' имеет свойство, установленное с сохранением. В моем классе init метод распределен очень просто:
dataString = [[NSMutableString alloc] init];
Выпускается в методе dealloc классов.
В связи: didReceiveData :, я использую переменную, как это:
NSString *tmpString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
[dataString appendString:tmpString];
[tmpString release];
Теперь здесь все становится сложнее. Поскольку класс, в котором я установил делегат NSURLConnection, является одноэлементным (он в основном обрабатывает вызовы типа NSURL *), мне нужно быть осторожным с тем, как я повторно использую свои объекты. Поэтому в моем соединении DidFinishLoading: class у меня есть следующее:
// cache away data currently in dataString.
[dataString release];
dataString = [[NSMutableString alloc] init];
Эта стратегия обработки моей dataString заставляет ваши глаза кровоточить? Я теряю память? Что я могу сделать, что умнее?