NSMutableArray arrayWithArray: vs. initWithArray: - PullRequest
3 голосов
/ 20 сентября 2010

Они оба работают в моем приложении без заметной разницы:

1)

theArray = [[NSMutableArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:theData]];

2)

theArray = [NSMutableArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:theData]];
[theArray retain];

Однако действительно ли они эквивалентны? (1) имеет оператор alloc, а (2) - нет. Один предпочтительнее другого?

1 Ответ

5 голосов
/ 20 сентября 2010

Эффект тот же.Но (2) менее эффективен (удобный метод = alloc + init + autorelease).

  1. alloc → init
  2. alloc → init → autorelease → retain

Предпочтительный способ - не копировать массив.

theArray = [[NSKeyedUnarchiver unarchiveObjectWithData:theData] retain];

Кстати, я заметил, что вы задали много основных вопросов о разработке для iPhone OS. Пожалуйста, сначала пройдите учебники по этим .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...