dashboard addObject:[[NSDictionary alloc] initWithObjectsAndKeys:@"demo_1.jpg",@"pic_source",@" Head",@"Title",nil];
Вы вызвали метод init - тогда вы являетесь владельцем объекта.Когда вы помещаете его в массив - вызывается и retain.Просто позвоните в автосервис, чтобы устранить утечку.
receiveData = [[NSMutableData data] retain];
- если вы позвоните release
, этот объект будет удален, когда он выходит из области видимости.Если вы напишите
receiveData = [NSMutableData data];
Он будет автоматически удален при выходе за рамки
РЕДАКТИРОВАТЬ
Если вы используете методы с init
Если вы указали в них слово, то вы являетесь владельцем таких объектов, и они не будут автоматически удаляться, пока вы не вызовете для них метод release
.Если вы не хотите владеть объектом, создайте его статическим методом.Например:
NSMutableArray *array = [NSMutableArray arrayWithObjects: ... , nil];
Это то же самое, что и вызов
NSMutableArray *array = [[[NSMutableArray alloc] initWithObjects: ... , nil] autorelease];
Авто-релиз означает, что объект получит метод release
, когда он выходит из области видимости - и если он не был сохранен, будетудаляется автоматически