У меня есть некоторые переменные, которые кэшируют некоторые данные из веб-службы.Проблемы с двойными указателями в ARC
Чтобы сделать мой код более динамичным, я хочу вернуть двойной указатель на переменную cache. Значит, это двойной указатель. У меня есть некоторые проблемы с ARC.
Вот что я получил:
- (id *)pointerToSectionCacheProperty:(SomeSection)section {
switch (section) {
case Section1:
{
return &_section1Cache;
}
break;
case Section2:
{
return &_section2Cache;
}
break;
case Section3:
{
return &_section3Cache;
}
break;
}
return nil;
}
ARC дает мне следующую ошибку:
Returning 'NSArray *__strong *' from a function with result type '__autoreleasing id *' changes retain/release properties of pointer
Является ли это неправильный подход?
Если да, то какой правильный подход?
Какую цель выполняет двойной указатель? ARC просто путают, по умолчанию результаты функции авторекламы, что делает ваш NSArray * в качестве своих объявлений? – ImHuntingWabbits
@ImHuntingWabbits Это просто 'strong'variable – NSAddict
Я считаю, что правильное объявление было бы (сильным NSArray **), так как вызывающему будет эффективно управлять этим объектом самостоятельно, если они изменят значение. – ImHuntingWabbits