(Swift)错误:UIApplicationMain属性不能在模块中使用

时间:2014-08-25 23:16:46

标签: ios swift xcode6-beta6 xcode6-beta5

所以,作为我学习Swift的努力的一部分,我得到了开源的#34;冒险"项目(找到HERE)由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 ",引自:         HeroCharacter.o中的__TFC9Adventure13HeroCharacter20animationDidCompletefS0_FOS_14AnimationStateT_         HeroCharacter.o中的__TFC9Adventure13HeroCharacter14fireProjectilefS0_FT_T_         Cave.o中的__TFC9Adventure4Cave15applyCaveDamagefS0_FTSd10projectileCSo6SKNode_T_         Cave.o中的__TFC9Adventure4Cave12performDeathfS0_FT_T_         Cave.o中的__TFFC9Adventure4Cave16loadSharedAssetsFMS0_FT_T_U_FT_T_         Goblin.o中的__TFC9Adventure6Goblin20animationDidCompletefS0_FOS_14AnimationStateT_         在Goblin.o中__TFFC9Adventure6Goblin16loadSharedAssetsFMS0_FT_T_U_FT_T_         ...     " __ TFSsoi1aUSs17_RawOptionSetType_USs21BitwiseOperationsTypeSs9Equatable__FTQ_Q__Q _",引自:         LayeredCharacterSceneOSXEvents.o中的__TFC9Adventure21LayeredCharacterScene14handleKeyEventfS0_FTCSo7NSEvent7keyDownSb_T_     " __ TFVSC6CGSizeCfMS_FT5widthSd6heightSd_S _",引自:         Archer.o中的__TFFC9Adventure6Archer16loadSharedAssetsFMS0_FT_T_U_FT_T_   ld:找不到架构x86_64的符号   clang:错误:链接器命令失败,退出代码为1

我甚至都没想去猜测这些错误的含义。

2 个答案:

答案 0 :(得分:1)

显然 Adventure 项目在Xcode6-Beta5中无法正确编译。但是,Xcode6-Beta6编译并运行它就好了。

至于升级到Beta6后遇到的错误,解决方法是删除项目的派生数据。要执行此操作,请打开管理器("窗口"菜单 - >"管理器"),选择"冒险"在窗口左侧的项目,然后单击"删除"与项目的派生数据相关联的按钮(应该是最右边的顶部)。

答案 1 :(得分:0)

对我来说,似乎还有一个名为main.swift的文件与我的AppDelegate冲突。我删除了它,问题就消失了。