麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Swift > 正文

swift中的@UIApplicationMain示例詳解

2020-03-09 17:42:43
字體:
來源:轉載
供稿:網友

前言

最近在學習swift,在學習中遇到了一些需要整理記錄的知識點,下面本文主要介紹了關于swift中@UIApplicationMain的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

程序如何開始的

C 系列語言中,程序的入口都是 main 函數,一個 Objective-C 的 iOS app 項目在新建時,Xcode 會給我們創建好一個 main.m 的文件。

#import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, char * argv[]){ @autoreleasepool {  return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); }}

我們調用了 UIKit 的 UIApplicationMain 方法,這個方法根據第三個參數初始化一個 UIApplication 或者它的子類對象開始接收事件。當傳入 nil 時則使用默認的 UIApplication。最后一個參數指定了 AppDelegate 類作為應用的委托,用來接收與應用生命周期相關的委托方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}- (void)applicationWillResignActive:(UIApplication *)application {}- (void)applicationDidEnterBackground:(UIApplication *)application {}- (void)applicationWillEnterForeground:(UIApplication *)application {}- (void)applicationDidBecomeActive:(UIApplication *)application {}- (void)applicationWillTerminate:(UIApplication *)application {}

雖然這個方法標明要返回一個 int,但其實它并不會真正的返回,而是一直存在于內存中,直到用戶或者系統將應用強制終止。

swift 中的對應情況

創建一個 swift 的項目之后,我們發現所有的文件中并沒有一個類似于 Objective-C 中的 main.m 文件,也沒有 main 函數。唯一和 main 有關系的就是在 AppDelegate 中有一個 @UIApplicationMain 標簽。

import UIKit@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate {}

這個標簽的作用就是將標注的類作為委托,創建一個 UIApplication 并啟動整個程序。一般情況我們不需要對這個標簽做任何修改,但如果我們想使用 UIApplication 的子類而不是它本身,我們就要自定義一個 main.swift 文件了(記得刪除 @UIApplicationMain 標簽)。這個文件我們不需要定義作用域,直接寫代碼就OK。

import UIKitclass MyApplication: UIApplication { override func sendEvent(_ event: UIEvent) {  super.sendEvent(event)  print("Event sent:/(event)") }}UIApplicationMain( CommandLine.argc, UnsafeMutableRawPointer(CommandLine.unsafeArgv)  .bindMemory(   to: UnsafeMutablePointer<Int8>.self,   capacity: Int(CommandLine.argc)), NSStringFromClass(MyApplication.self), NSStringFromClass(AppDelegate.self))

這樣每次發送事件(點擊按鈕之類的)我們都可以監聽到了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩视频―中文字幕 | 一区二区久久电影 | 一级片九九 | 天天夜碰日日摸日日澡性色av | 一区二区久久 | 久久超碰99 | 成人免费在线视频播放 | 免费a观看| 久久久成人精品视频 | 亚洲免费高清 | 国产精品久久久久久久久粉嫩 | 日韩黄色片免费看 | 国内免费视频成人精品 | 欧美成人久久 | 免费a级毛片大学生免费观看 | 日本在线国产 | free japan xxxxhdsex69 | 亚洲电影在线观看高清免费 | 国产精品久久久久久久久久尿 | 免费a视频在线观看 | 毛片免费一区二区三区 | av色偷偷| 叉逼视频| 成人短视频在线播放 | 久久在线精品视频 | 美女很黄很黄免费的 | 成人午夜淫片a | 欧美一区二区三区久久精品视 | av在线1 | 欧美爱爱视频免费看 | 午夜在线视频观看 | 亚洲午夜视频在线 | 国产美女一区二区在线观看 | 久久免费视频精品 | 毛片视频网站在线观看 | av免费在线观看av | 国产精品自在线拍 | 国产成人高清成人av片在线看 | 中文字幕视频在线播放 | 在线播放av片 | 日韩毛片毛片久久精品 |