Як повернути об'єкти з функції в ARC?

Без ARC я можу використовувати автовипуск для масиву, як показано нижче

//-(NSMutableArray *)getObjects 

-(NSMutableArray *)retrieveObjects
{
    NSMutableArray *aArray = [[NSMutableArray alloc] init];
  //add objects
   return [aArray autorelease];
}

Як досягти того ж в АРК?

1
Зауважте, що відповідно до умов іменування Какао слід використовувати лише імена методів, починаючи з get , коли вони повертають значення через вихідні параметри. Див. developer.apple.com/library/ mac/# documentation/Cocoa/Концепція & zwnj; ual/& hellip;
додано Автор user557219, джерело
Зауважте, що відповідно до умов іменування Какао слід використовувати лише імена методів, починаючи з get , коли вони повертають значення через вихідні параметри. Див. developer.apple.com/library/ mac/# documentation/Cocoa/Концепція & zwnj; ual/& hellip;
додано Автор user557219, джерело

7 Відповіді

Ви не автовивіз об'єкта.

8
додано

Ви не автовивіз об'єкта.

8
додано

Не робіть нічого. ARC автоматично виведе масив автоматично, тому що ваш метод названий getObjects замість того, щоб називатися щось подібним allocObjects або copyObjects або newObjects .

Ознайомтеся з “Збережені повернуті значення” та " Необов'язкові значення для повернення " в документації clang.

3
додано

According to Apple's Advance Memory Management Programming Guide

У автоматичному обчисленні посилань або ARC система використовує ту ж систему підрахунку посилань, що і MRR, але вставляє відповідні виклики методу керування пам'яттю під час компіляції. Вам настійно рекомендується використовувати ARC для нових проектів. Якщо ви використовуєте ARC, то, як правило, не потрібно розуміти базову реалізацію, описану в цьому документі, хоча це може бути корисним у деяких ситуаціях.

Зазвичай вам не потрібно використовувати методи збереження, випуску або автовипуску. Система зробить це за вас. Однак потрібно бути обережним, щоб не виконувати утримання циклів; якщо ви це зробите, ці об'єкти не будуть звільнені.

2
додано

According to Apple's Advance Memory Management Programming Guide

У автоматичному обчисленні посилань або ARC система використовує ту ж систему підрахунку посилань, що і MRR, але вставляє відповідні виклики методу керування пам'яттю під час компіляції. Вам настійно рекомендується використовувати ARC для нових проектів. Якщо ви використовуєте ARC, то, як правило, не потрібно розуміти базову реалізацію, описану в цьому документі, хоча це може бути корисним у деяких ситуаціях.

Зазвичай вам не потрібно використовувати методи збереження, випуску або автовипуску. Система зробить це за вас. Однак потрібно бути обережним, щоб не виконувати утримання циклів; якщо ви це зробите, ці об'єкти не будуть звільнені.

2
додано

Вам не потрібно автоматично видавати цей об'єкт. Про це піклується АРК. Однак, якщо нічого не називається сильно повернутим об'єктом з методу getObjects , воно негайно вийде.

array = [self getObjects]//array should be a strong variable
2
додано

Таким чином :

-(NSMutableArray *)getObjects
{
    NSMutableArray *aArray = [NSMutableArray alloc] init];
  //add objects
   return aArray;
}
1
додано
IT KPI iOS
IT KPI iOS
74 учасників

Чат обсуждения IOS. - Оффтоп, флуд, оскорбления и вбросы здесь не приняты. - За нарушение - предупреждение или mute на неделю. - За спам и рекламу - ban. Все чаты IT KPI: https://t.me/itkpi/602

ios_jobs_ua
ios_jobs_ua
27 учасників

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.