Выше вы отправляете сообщение release
на nil
.В общем случае обратное, то есть
[image release];
image = nil;
Аналогичная ошибка была допущена здесь .
Однако, поскольку экземпляр UIButton
есть (согласно быстрому взгляду наUIButton.h
) сохраняя изображение, это ошибка image = nil
, т. Е. Просто
[image release];
правильно.В настоящее время вы делаете большое предположение о том, как данный объект устанавливает одно из своих свойств.
Например, представьте, что происходит, когда приходит время освободить ваш экземпляр UIButton.Как он будет отправлять release
вашему изображению, которое он сохранял, когда вы давно установили для своего изображения значение nil
?Кнопка обнаруживает, что сохраняет нулевое изображение.Она столкнется с той же проблемой, что и вы сами: отправка release
на ноль!