Одна вещь, которая приходит на ум, это то, что вы делаете self.
, что может означать, что ваш сборщик изображений сохраняется дважды.Один раз, потому что вы выделяете его, и один раз, потому что вы используете сеттер.
Как выглядит строка @property
для imgPicker
?У него есть retain
?Если это так, вам следует либо изменить первую строку в первой приведенной выше цитате на:
imgPicker = [[UIImagePickerController alloc] init];
То есть, удалив self.
.
Также во второй строке вы отпускаете imgPicker
напрямую.Если ваш @property
действительно имеет retain, вы должны вместо этого просто сделать:
self.imgPicker = nil;
Причина в том, что синтезирующий @property
сохраняет и освобождает объекты при их установке.Если вы release
imgPicker
не установите его на nil
, а затем попытаетесь установить для него новое значение, система попытается release
уже освобожденного объекта и, возможно, потерпит крах.Выше приведено то же самое, что и:
[imgPicker release];
imgPicker = nil;