Странное поведение с MainWindow.xib, приложение не достигнет didFinishLaunchingWithOptions - PullRequest
0 голосов
/ 15 декабря 2010

Я запустил новый проект в Xcode 3.2.5, где все делается в коде.Я не хочу использовать xibs на этот раз, хотя с нетерпением жду интегрированного IB в Xcode 4.

Проблема возникла, когда я отредактировал строку в файле json.При запуске кода я заметил, что появляется старая строка, хотя файл, безусловно, был изменен, поэтому я удалил свою папку Library/Application Support/iPhone Simulator, ожидая, что мои изменения json будут загружены в пакет и код увидит ожидаемое значение.

Затем команда -Y, чтобы построить и запустить, и он не будет работать.Хотя в папке моего проекта нет MainWindow.xib, мой файл Info.plist ссылается на MainWindow.xib.(Я удалил его, после создания этого приложения для iPhone с шаблоном Xcode New Project). Таким образом, я удалил этот ключ из списка, полагая, что xib, должно быть, сидел в комплекте приложений после установки в симуляторе при первом запускеapp.

Затем я снова запустил приложение.Никаких жалоб, только черный экран - и точка останова в моем делегате приложения, на didFinishLaunchingWithOptions не попадает.

Я ничего не изменил в main.m.Как может быть, что приложение не запускается?

Ответы [ 3 ]

2 голосов
/ 15 декабря 2010

Я думаю, что-то испортилось, когда вы удалили MainWindow.xib. Попробуйте эти шаги, чтобы увидеть, если это решит проблему.

  1. В меню Проект выберите Edit Active Target. Выберите вкладку «Свойства» и очистите поле «Основной файл пера». Закройте окно Target Info.

  2. В группе «Другие источники» отредактируйте файл main.m. В вызове функции UIApplicationMain измените последний параметр на имя класса вашего делегата приложения.

    int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
    
  3. В вашем делегате приложения вам необходимо создать объект окна. Я делаю это в -applicationDidFinishLaunching :. Если вы определили что-то еще в вашем MainWindow.xib, вы, вероятно, можете создать это и здесь.

    - (void)applicationDidFinishLaunching:(UIApplication *)application
    {
    UIWindow *appWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window = appWindow;
    [appWindow release];
    }
    

Если это не сработает, дайте мне знать, и я могу дать вам другой способ.

0 голосов
/ 16 марта 2012

Это то же самое, что и @ "AppDelegate", но вы также можете написать так:

(argc, argv, nil, NSStringFromClass([AppDelegate class]))
0 голосов
/ 15 декабря 2010

Похоже, у вас нет view подключенного в XIB.

...