- 1
- 2
if (view_clip.parent.contains(view_clip))
view_clip.parent.removeChild(view_clip);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−89
if (view_clip.parent.contains(view_clip))
view_clip.parent.removeChild(view_clip);
это надо было до такого додуматься
а есть нечто типа view_clip.removeFromParent() ?
Стоп! Автор забыл предусмотреть возможную кончину родителя:
P.S. А, снизу уже рассказали.
Расскажите, ASS-ники
условие может выкинуть ексепшн(если парент null)
условие может быть тру, но removeChild выкинет эксепшн
view_clip.removeFromParent() - не айс подход, дети не должны решать за родителей
Так мы ничего за родителей и не решаем - просто говорим убить view_clip. Ребенок захотел - самоубился,поставив в известность родителя) Или у вас работает принцип Тараса Б - объекты могут удалять только их родителями?
Вложенный объект уведомляет вышестоящий, вышестоящий убирает ссылку на вложенный, в шарпе на этом можно остановится.
отличие только в том, что там не спрашивают родителя: "Аз есмь?"
ЗЫ. Несмотря на неинтуитивную запись, поиск делается от ребенка к предполагаемому родителю, так что максимум, вместо проверки parent получим десяток проверок parent - не смертельно, а писанины меньше. При этом в большинстве случаев, самая же первая проверка parent либо найдет нужного родителя, либо обнаружит, что клип вообще не в списке отображения.