Iphone: разница между этими двумя заданиями - PullRequest
0 голосов
/ 12 января 2011

у меня есть этот код в моем .h:

@property (nonatomic, retain) NSArray *arrayData;

В чем разница между:

self.arrayData = [[NSArray alloc]initWithObjects:@"date",@"trip",nil];

и:

arrayData = [[NSArray alloc]initWithObjects:@"date",@"trip",nil];

и что должноя использую и как освободить переменную arrayData.

Спасибо

1 Ответ

1 голос
/ 12 января 2011

Разница в том, что использование self.arrayData = ... сохраняет массив.Вы должны освободить его, используя self.arrayData = nil;.

Код, который у вас есть имел , здесь не работает, поскольку один init не выделяет массив.Вы можете использовать

self.arrayData = [NSArray arrayWithObjects:@"date",@"trip",nil];

Для выделения и инициализации массива.

ps arrayWithObjects возвращает выделенный и автоматически освобожденный объект.Это означает, что объект исчезнет, ​​если вы не сохраните его.Для этого используйте self.arrayData = ....

Эквивалент с alloc / init / autorelease будет выглядеть так:

self.arrayData = [[[NSArray alloc] initWithObjects:....,nil] autorelease];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...