swift 和 didFinishLaunchingWithOptions 的 cocos2d CCAppDelegate 问题
Posted
技术标签:
【中文标题】swift 和 didFinishLaunchingWithOptions 的 cocos2d CCAppDelegate 问题【英文标题】:cocos2d CCAppDelegate issue with swift and didFinishLaunchingWithOptions 【发布时间】: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 而崩溃。
有没有人遇到过这个问题或可以提出解决办法?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于swift 和 didFinishLaunchingWithOptions 的 cocos2d CCAppDelegate 问题的主要内容,如果未能解决你的问题,请参考以下文章
使用适用于 iOS 10 的 UNUserNotificationCenter
FIRInstanceID 在 FIRInstanceIDAPNSTokenType.Sandbox 中变为零