После использования метода NSArray * sort * я отвечаю за освобождение возвращенного массива - PullRequest
2 голосов
/ 11 февраля 2010

Я привык к программированию, где я несу ответственность за освобождение всего, и эта цель с прикольными вещами бросает несколько гаечных ключей в работу. Я использую следующий код.

NSArray *b = [a allObjects];
NSArray *c = [b sortedArrayUsingDescriptors:sortDescriptors];

Кто ответственен за выпуск "b" и "c". Для записи, «а» - это NSSet. Если я выпускаю их вручную, это может привести к сбою приложения, но я не уверен на 100%, поэтому я подумал, что я задам вопрос.

Спасибо.

1 Ответ

10 голосов
/ 11 февраля 2010

Оба этих вызова возвращают автоматически освобожденные объекты, так что вы в безопасности. Они будут освобождены для вас (например, в будущем, в конце текущего цикла выполнения).

Общее правило состоит в том, что если вы явно не вызываете retain, alloc или один из copy методов объекта, вы получаете автоматически освобожденный объект из любого метода, который вы вызываете.

Вот ссылка на документацию по управлению памятью .

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