(или даже только один класс с одним делегатом)
Скажем, у меня есть класс DataGetter, который загружает файл из Интернета.У него есть метод делегата, который запускается при загрузке файла:
- (void) dataGetterFinished:(DataGetter *)dataGetter;
Так что где-то в моем коде я могу настроить несколько файлов для загрузки следующим образом:
// in AViewController.m
DataGetter *blueFile = [[DataGetter alloc] init];
blueFile.delegate = self;
[blueFile getData:@"http://example.com/blue-file"];
DataGetter *redFile = [[DataGetter alloc] init];
redFile.delegate = self;
[redFile getData:@"http://example.com/red-file"];
Используя статический анализатор clang, каждая выделенная строка выше выдает ошибку «потенциальная утечка объекта, размещенного в строке…».Итак, как бы я выпустил объект.Он должен торчать, потому что у него есть делегат.Так можно ли выпускать его в качестве последней строки метода dataGetterFinished, например,
- (void) dataGetterFinished:(DataGetter *)dataGetter
{
// code
[dateGetter release];
}
... или я должен каким-либо образом использовать autorelease?