Вы отпускаете tempMapListings
после вашего возврата из функции.После оператора return в этой ветви больше не выполняется код.Ergo, ваше заявление [tempListListings release]
никогда не выполняется.Более того, возвращая его, вы на самом деле не хотите сразу его выпускать - у вызывающей стороны никогда не будет возможности сохранить массив!
Пулы с автоматическим выпуском - ваш друг здесь.Объекты, добавленные в пул авто-выпусков, освобождаются от вашего имени «в конечном итоге», давая вам время для вызова результата.Чтобы добавить свой объект в пул по умолчанию, измените строку выделения на
NSMutableArray *tempMapListings = [[[NSMutableArray alloc] init] autorelease];
и удалите этот последний вызов release
.
Для получения дополнительной информации об пулах автоматического выпуска прочитайте Документация Apple .Они действительно очень полезны.