В инструмента за получаване на едно от моите запазени свойства разпределям и присвоявам NSArray на моя модел обект ("модели"). След това сортирам този NSArray с помощта на метода "sortedArrayUsingSelector:". Според документите това връща автоматично пуснат NSArray обратно. След това пренасочвам това към моя масив "модели".
Отначало никога не задържах този автоматично освободен сортиран масив и открих, че когато извадя този viewController от стека, приложението ми ще се срине, казвайки, че се опитвам да намаля броя на препратките на освободен обект или нещо от този сорт. След това добавих задържане, както можете да видите в кода по-долу, и всичко е наред.
Въпросът ми е правилно ли е, че трябва да запазя автоматично освободения обект, въпреки че запазвам това свойство в неговата декларация и го освобождавам в моя dealloc?
- (NSArray *)models {
if (!models) {
models = [[NSArray alloc] initWithArray:[self.modelDictionary allKeys]];
models = [[models sortedArrayUsingSelector:@selector(compare:)] retain];
}
return models;
}