Вы присваиваете результат этого метода переменной экземпляра? Имейте в виду, что вещи, добавленные в пул автоматического выпуска, будут выпущены в какой-то момент в будущем (обычно в конце цикла выполнения), поэтому, если вы назначите его переменной экземпляра, и конец цикла выполнения наступит, ваша переменная экземпляра в конечном итоге будет указывать на мусор (или иногда на другой объект), если вы не сохраните it.
Имя метода (getData
) предполагает, что возвращаемый объект должен быть автоматически освобожден, поэтому вы можете создать массив с [NSMutableArray array]
, заполнить его как обычно, а затем вернуть его из метода.
Если код, который вызывает getData
, хочет, чтобы массив пережил итерацию цикла выполнения, ему нужно retain
, но также он должен убедиться, что release
массив, когда он наконец завершится это - это обычно делается в вашем dealloc
методе.