Swift 项目中添加main方法
接上一篇文章 Swift 模块化框架的实现以及模块之间的解藕 之后, 我们近一步让app在启动之前就调用ModuleManager的初始化方法.
在OC中是有一个main.m文件以及一个main函数的,但是在swift中被去掉了,取而代之的是在AppDelegate.m中使用 @UIApplicationMain.
因此,想要实现这个功能就必须手动给它添加一个main方法
在项目中添加main方法
- 首先注释掉AppDelegate.m中的@UIApplicationMain
- 添加一个main.swift文件,并在文件中添加如下代码
import UIKit import Foundation import ModuleManger private let pointer = UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory( to: UnsafeMutablePointer<Int8>?.self, capacity: Int(CommandLine.argc) ) let result = ModuleManagerApplicationMain( CommandLine.argc, pointer, NSStringFromClass(UIApplication.self), NSStringFromClass(AppDelegate.self) )
3.在ModuleManager中添加入口函数
// app 入口函数 public func ModuleManagerApplicationMain(_ argc: Int32, _ argv: UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>!, _ principalClassName: String?, _ delegateClassName: String?) -> Int32 { ModuleManager.sharedInstance.setup() return UIApplicationMain(argc,argv,principalClassName,delegateClassName) }
作者:裸奔的小鸟
出处: http://www.cnblogs.com/streakingBird/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。