0

因此,作为学习 Swift 的一部分,我接触到了 Apple 提供的开源“Adventure”项目(在此处找到)。

尴尬的是,我没走多远,就遇到了第一个困境。当我尝试编译项目时,出现以下错误:

'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", referenced from: __TFC9Adventure13HeroCharacter20animationDidCompletefS0_FOS_14AnimationStateT_ in HeroCharacter.o __TFC9Adventure13HeroCharacter14fireProjectilefS0_FT_T_ in HeroCharacter.o __TFC9Adventure4Cave15applyCaveDamagefS0_FTSd10projectileCSo6SKNode_T_ in Cave.o __TFC9Adventure4Cave12performDeathfS0_FT_T_ in Cave.o __TFFC9Adventure4Cave16loadSharedAssetsFMS0_FT_T_U_FT_T_ in Cave.o __TFC9Adventure6Goblin20animationDidCompletefS0_FOS_14AnimationStateT_ in Goblin.o __TFFC9Adventure6Goblin16loadSharedAssetsFMS0_FT_T_U_FT_T_ in Goblin.o ... "__TFSsoi1aUSs17_RawOptionSetType_USs21BitwiseOperationsTypeSs9Equatable__FTQ_Q__Q_", referenced from:__TFC9Adventure21LayeredCharacterScene14handleKeyEventfS0_FTCSo7NSEvent7keyDownSb_T_ in LayeredCharacterSceneOSXEvents.o "__TFVSC6CGSizeCfMS_FT5widthSd6heightSd_S_", referenced from: __TFFC9Adventure6Archer16loadSharedAssetsFMS0_FT_T_U_FT_T_ in Archer.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1

我什至不打算猜测这些错误的含义。

4

2 回答 2

1

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

至于升级到Beta6后遇到的错误,解决方法是删除项目的派生数据。为此,打开 Organizer(“Window”菜单 ->“Organizer”),选择窗口左侧的“Adventure”项目,然后单击与该项目的派生数据关联的“Delete”按钮(应该是最右边的顶部)。

于 2014-08-26T03:16:32.860 回答
0

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

于 2017-09-13T11:19:35.253 回答