Хорошо, давайте посмотрим на поведение объекта в распределении / владении этим кодом ...
numberForArray
присваивается результат -NSString stringWithFormat:
, который является автоматически высвобождаемым объектом. Это означает, что вы не хотите выпустить его (как вы обнаружили).
Этот объект затем добавляется в glucoseLoader
NSMutableArray, который будет retain
его. Вы зацикливаетесь 100 раз, создавая 100 объектов и добавляя их к glucoseLoader
. Когда освобождается glucoseLoader
, в строке 154 он также освобождает все добавленные к нему объекты.
Но подождите, есть еще: firstComponentRange
создается из glucoseLoader
с использованием -NSArray initWithArray:
. Когда вы это сделаете, все элементы исходного массива будут добавлены к месту назначения, что сохранит их снова.
Итак, когда / как вы выпускаете firstComponentRange
?