Почему при добавлении представления происходит сбой программы? - PullRequest
0 голосов
/ 23 января 2012

В попытке выяснить, как интегрировать код из одной программы в другую, я выбросил 3 класса в пустой открытый игровой проект GLES. Классами являются ContentController, PhoneContentController и MyViewController из образца Apple PageControl.

Затем я взял этот код инициализации из файла делегата приложения PageControl и поместил его в игровой проект appDelegate.

 contentController = [[PhoneContentController alloc] init];
 [self.window addSubview:contentController.view];

с необходимыми синтезами / протоколами / включениями и объявлениями, где они находятся в PageControl.

Я получаю ошибку SIGABRT в этой строке в main:

return UIApplicationMain(argc, argv, nil, NSStringFromClass([IntegrationTestAppDelegate class]));

Я добавил общую точку останова, и она указывает на эту строку в MyViewController.m

newsItem = [[UITextView alloc] initWithFrame:self.view.frame];

Полагаю, это как-то связано с self.view.frame ....? может быть? Итак, есть ли здесь какая-то проблема типа иерархии?

РЕДАКТИРОВАТЬ - при дальнейшей проверке, похоже, что-то связано с видами ... хотя я не совсем знаю, что. Может ли это быть как-то связано с файлом внешнего пера?

EDIT - более подробно: newsItem вызывается из init myViewController, который вызывается из метода внутри контроллера содержимого телефона, который, в свою очередь, вызывается со следующей строкой в ​​appdelegate:

contentController = [[PhoneContentController alloc] init];

1 Ответ

0 голосов
/ 23 января 2012

В какой момент выполняется:

newsItem = [[UITextView alloc] initWithFrame:self.view.frame];

?В частности, после завершения загрузки пера?Если нет, и self.view был установлен в Интерфейсном Разработчике, то self.view будет нулевым, а self.view.frame будет мусором.(-initWithFrame: ожидает структуру CGRect, поэтому в этом случае нулевой указатель совершенно недопустим, в отличие от методов, ожидающих объекты Objective-C.)

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