Удаление представления из его суперпредставления вызывает ошибку памяти - почему? - PullRequest
0 голосов
/ 11 марта 2010

Xcode выдает ошибку:

malloc: * ошибка для объекта 0x103f000: освобожденный указатель не был выделено * установить точку останова в malloc_error_break для отладки

Я отслеживал код до строки, где я делаю это:

- (void)inputValueCommitted:(NSString *)animationID finished:(BOOL)finished context:(void *)context {
        // retainCount of myView is 2! (one for the retain-property, one for beeing a subview)
        [self.myView removeFromSuperview]; // ERROR-LINE !!
        self.myView = nil;
}

Когда я удаляю эту строку с ошибкой, ошибка исчезает. Итак, в заключение: я не могу избавиться от своего взгляда!

Это UIImageView, внутри которого больше ничего нет, только изображение. Я делаю так: я создаю UIView Animation Block, создаю UIImageView, присваиваю его свойству retain с помощью self.myView = ..., и после завершения анимации я просто хочу избавиться от этого представления. Поэтому я удаляю его из суперпредставления и затем устанавливаю для моего свойства значение nil, что позволяет ему исчезнуть - теоретически.

Кто-нибудь еще сталкивался с такими проблемами? iPhone SDK 3.0.

1 Ответ

1 голос
/ 19 марта 2010

В Simulator 3.0 в SDK 3.0 есть ошибка, которая может вызвать эту ошибку:

Разработка iPhone: освобожденный указатель не выделен

Это не происходит в Simulator в версии 3.1+ или на устройстве в любой версии SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...