Как правильно удалить из Superuview? - PullRequest
9 голосов
/ 17 июля 2009

Apple говорит:

removeFromSuperview Отсоединяет приемник из своего суперпредставления и его окно, и удаляет его из цепочка респондента.

  • (аннулируются) removeFromSuperview

Никогда не вызывайте этот метод, пока отображение.

Итак, когда я хочу избавиться от вида, я привык просто отталкивать его от его суперпредставления. Почему я никогда не должен вызывать это, пока оно видно? Так что я должен установить его на скрытый = ДА, прежде чем сделать это?

1 Ответ

17 голосов
/ 17 июля 2009

В спецификации указывается «при отображении», а не «при отображении». Таким образом, вы никогда не должны вызывать removeFromSuperview в представлении drawRect, например.

removeFromSuperview освобождает представление и может освободить его. Родительское представление при попытке отобразить представление, возможно, не ожидало, что оно будет освобождено и приведет к повреждению доступа.

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