(Swift) Ошибка: атрибут UIApplicationMain нельзя использовать в модуле

Поэтому, как часть моих усилий по изучению Swift, я получил в свои руки проект с открытым исходным кодом "Приключение" (найденный ЗДЕСЬ), доступный Apple.

Смущающе, я не зашел слишком далеко, пока не столкнулся с моим первым затруднением. Когда я попытался скомпилировать проект, я получил следующую ошибку:

Атрибут "UIApplicationMain" нельзя использовать в модуле, который содержит код верхнего уровня "

В частности, ошибка находится в AppDelegate.swift файл и атрибут приходит сразу после import UIKit объявление следующим образом:

import UIKit

@UIApplicationMain
class AppDelegate: NSObject, UIApplicationDelegate {
    var window: UIWindow?
    ....
    // a number of functions that I won't list here...
    ....
}

Я провел некоторое исследование по этому вопросу, но по понятным причинам (?), Кажется, не так много информации по этому вопросу. Интересно, сталкивался ли кто-нибудь с той же проблемой?

(Кстати, я использую Xcode6-beta5)

РЕДАКТИРОВАТЬ 1 --------------

Теперь, при новой установке Beta6, я получаю следующие ошибки после компиляции:

Неопределенные символы для архитектуры x86_64:"TFSs15_arrayForceCastU___FGSaQ__GSaQ0", ссылочные из: __TFC9Adventure13HeroCharacter20animationDidCompletefS0_FOS_14AnimationStateT_ в HeroCharacter.o __TFC9Adventure13HeroCharacter14fireProjectilefS0_FT_T_ в HeroCharacter.o __TFC9Adventure4Cave15applyCaveDamagefS0_FTSd10projectileCSo6SKNode_T_ в Cave.o __TFC9Adventure4Cave12performDeathfS0_FT_T_ в Cave.o __TFFC9Adventure4Cave16loadSharedAssetsFMS0_FT_T_U_FT_T_ в Cave.o __TFC9Adventure6Goblin20animationDidCompletefS0_FOS_14AnimationStateT_ в Goblin.o __TFFC9Adventure6Goblin16loadSharedAssetsFMS0_FT_T_U_FT_T_ в Goblin.o ... "__TFSsoi1aUSs17_RawOptionSetType_USs21BitwiseOperationsTypeSs9Equatable__FTQ_Q__Q_", ссылки из: __TFC9Adventure21LayeredCharacterScene14handleKeyEventfS0_FTCSo7NSEvent7keyDownSb_T_ в LayeredCharacterSceneOSXEvents.o "__TFVSC6CGSizeCfMS_FT5widthSd6heightSd_S_", ссылки из: __TFFC9Adventure6Archer16loadSharedAssetsFMS0_FT_T_U_FT_T_ в Archer.o л.д.: SYM Болты не найдены для архитектуры x86_64 clang: ошибка: сбой команды компоновщика с кодом выхода 1

Я даже не собираюсь пытаться угадать, что означают эти ошибки.

2 ответа

Решение

Видимо, проект Adventure неправильно компилируется в Xcode6-Beta5. Тем не менее, Xcode6-Beta6 компилируется и запускается просто отлично.

Что касается ошибки, возникшей после обновления до бета-версии 6, способ исправить это удалить производные данные для проекта. Для этого откройте органайзер (меню "Окно" -> "Органайзер"), выберите проект "Приключение" в левой части окна, затем нажмите кнопку "Удалить", связанную с производными данными проекта (должен быть верхний справа).

Для меня, кажется, был еще один файл с именем main.swift, который конфликтовал с моим AppDelegate. Я удалил это, и проблема ушла.

Другие вопросы по тегам