2014-11-20 3 views
4

Я переустановил Xcode 6 после того, как не смог получить обычную справку ctrl-click. Теперь, когда я создаю новый проект Xcode для приложения OS X Cocoa, файл main.swift больше не находится в поддерживающих файлах, как это было раньше. У меня есть 2 раздела и Mavericks на одном, Yosemite - с другой. Неужели кто-нибудь скажет мне, что происходит и как обойти его? Это мой первый вопрос, не стесняйтесь указывать мне любые ошибки в нем, пожалуйста. Thanksxcode 6 отсутствует файл main.swift для новых проектов

ответ

13

Вам необязательно нужен файл main.swift. Основная (хех) цель этого файла - вызвать NSApplicationMain(), функцию, которая запускает и запускает приложение Cocoa. Но, поскольку каждое приложение должно это делать, Apple добавила менее способный способ делать что-то.

Теперь вам нужно просто наклеить класс делегата приложения атрибутом @NSApplicationMain. Затем Xcode будет создавать правильные крючки, чтобы ваше приложение было запущено в его основной цикл запуска с экземпляром выбранного вами класса в качестве делегата NSApp. Шаблоны новых проектов делают это, поэтому вам больше не нужен main.swift. (Это также освобождает вас от необходимости назначать делегата приложения в главном аптечке, что полезно для приложений, использующих раскадровки OS X.)

Конечно, если вы хотите настроить настройку своего приложения чуть-чуть, скажем, запуск какого-либо кода перед запуском цикла запуска или с помощью подкласса NSApplication - вы все равно можете создать файл main.swift и позвонить по телефону NSApplicationMain(). (Если вы это сделаете, обязательно удалите атрибут @NSApplicationMain из вашего класса делегата приложения.)

+0

Большое спасибо. Вы были совершенно ясны. Я думаю, что я готов продолжить свое обучение с меньшим беспокойством ... Извините за то, что вы не голосовали за вас, но я здесь так новичок, что у меня даже нет 15 баллов репутации! Когда я доберусь туда, я вернусь. С наилучшими пожеланиями, Артур Пинейро –

+0

Очень незначительная коррекция. Когда я прочитал предложение, которое гласит: «Теперь вам просто нужно пометить ваш класс делегата карты атрибутом @NSApplicationMain». Сначала я был смущен. Конечно, «делегат карты» должен быть «AppDelegate». '@NSApplicationMain класс AppDelegate: NSObject, NSApplicationDelegate {' –

Смежные вопросы