Это зависит от того, что вы собираетесь делать с возвращаемым значением.- [NSArray allValues] возвращает новый массив, который автоматически высвобождается, поэтому, если вы планируете использовать этот массив в течение длительного времени (вне области действия функции), вы должны сохранить его (но не в - (NSArray *) getNeighbors).Сохранить массив (если необходимо снаружи):
-(void) foo {
ivar_array = [[someObject getNeighbors] retain];
}
ИЛИ случай, когда вам не нужно сохранять:
-(void) foo {
NSArray* array= [someObject getNeighbors];
//do something with that array
}