Я вижу две проблемы с этим кодом:
- Objective-C не гарантирует инициализации локальных переменных, так
view
может быть 0, указатель на что-то другое, или значение мусора.
- Даже если Objecitve-C инициализирует переменную для вас, это не имеет большого значения для проверки ее значения сразу после объявления.
Вы действительно объявляете это как переменную экземпляра где-то еще?
Что касается выделения, которое не отображается в UIView? И то и другое? Я попробую перезагрузить файл или перезапустить Xcode.
Чтобы устранить эти два вопроса я назвал, заменить, что с этим кодом:
UIView *view = [[UIView alloc] init];
Возникает еще один вопрос: под АРК, ваш вновь распределённая вид будет освобождаться, когда переменная выходит из области видимости, если не хранить он в переменной экземпляра или структуре (например, супервизор) хранит его где-то в другом месте.
Если вы используете ручной удержание-освобождение вместо ARC, вы будете пропускать UIView каждый раз, когда вызывается этот метод.
хорошие точки @ инициализации –
'UIView' до того, как инструкция if не подсвечена – mnort9
Да, я полагал, что это неверно. Мне просто нужно было объявить его каким-то образом сделать что-то с видом (изменить свойство или добавить в subview и т. Д.). Если я объявляю в выражении if, я не могу ничего с ним сделать после проверки. Каков правильный способ объявления в этом случае? – mnort9