Swift 項目中添加main方法


接上一篇文章 Swift 模塊化框架的實現以及模塊之間的解藕 之后, 我們近一步讓app在啟動之前就調用ModuleManager的初始化方法. 

在OC中是有一個main.m文件以及一個main函數的,但是在swift中被去掉了,取而代之的是在AppDelegate.m中使用 @UIApplicationMain.

因此,想要實現這個功能就必須手動給它添加一個main方法

 

在項目中添加main方法

  1. 首先注釋掉AppDelegate.m中的@UIApplicationMain
  2. 添加一個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)
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM