在Objective C中很简单:更新main.m文件并更改UIApplicationMain()参数就足够了
return UIApplicationMain(argc, argv, NSStringFromClass([CustomUIApplication class]), NSStringFromClass([AppDelegate class]));
Run Code Online (Sandbox Code Playgroud)
但是在swift中没有main.m文件,因为指南说
"在全局范围编写的代码用作程序的入口点,因此您不需要主函数."
那么,如何在swift中继承UIApplication?有什么建议吗?
我们有一个自定义的UIApplication对象,所以我们的main.swift是
import Foundation
import UIKit
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(MobileUIApplication), NSStringFromClass(AppDelegate))
Run Code Online (Sandbox Code Playgroud)
这在Xcode 8 beta 5中不起作用,所以我们使用了这个
//TODO Swift 3 workaround? https://forums.developer.apple.com/thread/46405
UIApplicationMain( Process.argc, UnsafeMutablePointer<UnsafeMutablePointer<CChar>>(Process.unsafeArgv), nil, NSStringFromClass(AppDelegate.self))
Run Code Online (Sandbox Code Playgroud)
在Xcode 8 beta 6上,我们使用未解析的标识符'Process'
我们需要在Xcode 8 beta 6/Swift 3中做些什么才能定义UIApplicationMain?