loadView EXC_BAD_ACCESS

#iphone #objective-c #ios

#iPhone #objective-c #iOS

Вопрос:

У меня есть кнопка, которая помещает другой viewcontroller в мой navigationcontroller. Когда я нажимаю кнопку, я получаю EXC_BAD_ACCESS в строке, где я добавляю метку состояния вложенного представления. Когда я удаляю эту строку. Я могу скомпилировать и запустить, я также могу перейти к другому представлению.

 - (void)loadView
{
    statusLabel = [[[UILabel alloc] initWithFrame:CGRectMake(20.0, 0.0, 150.0, 43.0)] autorelease];
    [self.view addSubview:statusLabel];
}
  

Спасибо

Комментарии:

1. Правильно отладьте свой код при событии click. Возможно, вы не выделили объект.

2. Хотелось бы получить дополнительную информацию о коде.

3. Вы не должны использовать self.view для получения представления внутри loadView. Целью loadView является создание основного представления, когда вы не используете перо. Средство self.view получения вызывает loadView, когда представление еще не загружено и будет рекурсивным.

4. Это не зависит от Xcode. Теги отредактированы.

5. Хм, но я видел много людей, делающих это таким образом: S

Ответ №1:

loadView метод используется для загрузки пользовательского представления (т. Е. Создания self.view и добавления всех его подвидов). Если у вас есть представление вашего контроллера в nib, вы должны поместить этот код в viewDidLoad метод.

Комментарии:

1. Я делаю это без файла nib: O Хочу сделать это программно

Ответ №2:

Очевидно, я на несколько лет опоздал на вечеринку, но сам только что столкнулся с этим.. В моем случае (который выглядит так же, как и в вашем случае) обязательно вызовите super.loadView()