Как настроить приложение для iOS, программно создавая окна и представления? - PullRequest
0 голосов
/ 14 января 2012

Я бы хотел покончить с файлами XIB (Nib) в моем проекте, потому что это именно то, как я работаю.Однако я обнаружил, что метод didFinishLaunchingWithOptions моего класса AppDelegate даже никогда не вызывается.

Я попытался установить основной класс в основном списке моего приложения следующим образом:

<key>NSPrincipalClass</key>
<string>AppDelegate</string>

Это приводит только к ошибке:

    +[AppDelegate registerForSystemEvents]: unrecognized selector sent to class 

Итак ... какможно обойтись без основного класса и просто запустить мой класс AppDelegate?

Спасибо.

Ответы [ 2 ]

1 голос
/ 14 января 2012

Самое простое, что нужно сделать, это просто начать с соответствующего шаблона проекта ... выбор «Пустого приложения» не создает перо, но правильно настраивает ваш main.m со следующей важной строкой:

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

Я думаю, что registerForSystemEvents - это закрытый метод для UIApplication, который имеет смысл, поскольку основным классом должен быть UIApplication или его подкласс, а не ответчик, соответствующий UIApplicationDelegate.

Вызов UIApplicationMain (), приведенный выше, установит ваш основной класс на UIApplication, а делегат на ваш пользовательский класс AppDelegate.

Но, как я уже сказал, просто упростите жизнь, используя соответствующий шаблон проекта.

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

Всем программам на С необходим main.m, который является отправной точкой для всех программ. Вы можете выбрать пустой шаблон или создать свой собственный. Хотя, если вы создаете свой собственный, вам нужно убедиться, что у вас есть пул авто-релизов. Вам нужно импортировать делегат приложения в main.m, и я уверен, что вам также нужен UIKit. Затем добавьте следующий код (при необходимости заменив класс делегата приложения:

int main(int argc, char *argv[])
    {
        int retVal = 0;
        @autoreleasepool {
            retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
        return retVal;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...