Как избежать "сообщения superview, отправленного освобожденному объекту" iphone - PullRequest
0 голосов
/ 16 марта 2010

У меня есть этот код:

 CardView *aCardView = [self prendiCartaDalMazzo];

 [aCardView removeFromSuperview]; 
 [self.mieCarte addSubview:aCardView];

когда я пытаюсь добавить aCardView как подвид mieCarte, я получаю эту ошибку:

objc [4800]: FREED (id): супервизор сообщения отправлен на освобожденный объект = 0x393f130 Программа получила сигнал: «EXC_BAD_INSTRUCTION».

Спасибо, все могут помочь.

Ответы [ 2 ]

2 голосов
/ 16 марта 2010

-removeFromSuperview делает релиз, который, вероятно, вызывает разрушение (ссылка на суперпредставление, вероятно, является последней оставшейся) ..

У

[aCardView retain];
[aCardView removeFromSuperview];

...

вместо.

0 голосов
/ 16 марта 2010

removeFromSuperview также освобождает получателя (так же, как addSubview: сохраняет его).

Вам необходимо сохранить представление карты перед ее удалением, а затем снова разблокировать, добавив в качестве подпредставления в другое представление.

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