【问题标题】:cocos2d CCAppDelegate issue with swift and didFinishLaunchingWithOptionsswift 和 didFinishLaunchingWithOptions 的 cocos2d CCAppDelegate 问题
【发布时间】:2014-08-09 01:21:01
【问题描述】:

还有其他人在使用 xcode 6 beta 5 在 Swift 上运行简单的 Cocos2d v3.1 时遇到问题吗?

@UIApplicationMain class AppDelegate : CCAppDelegate, UIApplicationDelegate {

override func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool
{
    setupCocos2dWithOptions([CCSetupShowDebugStats: true])

    return true
}

override func startScene() -> (CCScene)
{
    return HelloWorldScene()
}

我在自己的项目中遇到了问题,但我在 github 上找到了一个示例项目,但存在同样的问题: https://github.com/chunkyguy/Cocos2dSwift

didFinishLaunchingWithOptions 函数有错误: 使用选择器 'application:didFinishLaunchingWithOptions:' 的覆盖方法具有不兼容的类型 '(UIApplication!, NSDictionary!) -> Bool'

将函数签名更改为:

override func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]) -> Bool

修复了编译器错误,但应用程序因 AppDelegate 上的 EXC_BAD_ACCESS 而崩溃。

有没有人遇到过这个问题或可以提出解决办法?

【问题讨论】:

    标签: ios cocos2d-iphone swift


    【解决方案1】:

    所以我没有清楚地详细阅读错误消息。我错过了感叹号,因为我复制并粘贴了 UIApplicationDelegate 快速生成的标题。我应该输入:

    override func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]!) -> Bool
    

    点击 UIApplication 委托的命令会显示:

    protocol UIApplicationDelegate : NSObjectProtocol {
    ... 
    optional func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]) -> Bool
    

    即没有 '!'s

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多