一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Swift - swift中的@UIApplicationMain示例詳解

swift中的@UIApplicationMain示例詳解

2021-01-09 17:49Inlight先森 Swift

這篇文章主要給大家介紹了關(guān)于swift中@UIApplicationMain的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

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

程序如何開始的

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

?
1
2
3
4
5
6
7
8
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[])
{
 @autoreleasepool {
  return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
 }
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
- (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,但其實它并不會真正的返回,而是一直存在于內(nèi)存中,直到用戶或者系統(tǒng)將應(yīng)用強制終止。

swift 中的對應(yīng)情況

創(chuàng)建一個 swift 的項目之后,我們發(fā)現(xiàn)所有的文件中并沒有一個類似于 Objective-C 中的 main.m 文件,也沒有 main 函數(shù)。唯一和 main 有關(guān)系的就是在 AppDelegate 中有一個 @UIApplicationMain 標簽。

?
1
2
3
4
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import UIKit
class 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)
)

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:https://www.jianshu.com/p/a526c4d7d61a

延伸 · 閱讀

精彩推薦
  • SwiftSwift實現(xiàn)多個TableView側(cè)滑與切換效果

    Swift實現(xiàn)多個TableView側(cè)滑與切換效果

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)多個TableView側(cè)滑與切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    乞力馬扎羅的雪雪5822021-01-08
  • SwiftSwift的74個常用內(nèi)置函數(shù)介紹

    Swift的74個常用內(nèi)置函數(shù)介紹

    這篇文章主要介紹了Swift的74個常用內(nèi)置函數(shù)介紹,這篇文章列舉出了所有的Swift庫函數(shù),內(nèi)置函數(shù)是指無需引入任何模塊即可以直接使用的函數(shù),需要的朋友可...

    Swift教程網(wǎng)5802020-12-19
  • Swiftswift where與匹配模式的實例詳解

    swift where與匹配模式的實例詳解

    這篇文章主要介紹了swift where與匹配模式的實例詳解的相關(guān)資料,這里附有簡單的示例代碼,講的比較清楚,需要的朋友可以參考下...

    追到夢的魔術(shù)師14382021-01-06
  • SwiftSwift能代替Objective-C嗎?

    Swift能代替Objective-C嗎?

    這是我在網(wǎng)上上看到的答案,復(fù)制粘貼過來和大家分享一下,因為我和很多人一樣很關(guān)心Swift的出現(xiàn)對Mac開發(fā)的影響和對Objective-C的影響。...

    Swift教程網(wǎng)4412020-12-16
  • SwiftSwift中轉(zhuǎn)義閉包示例詳解

    Swift中轉(zhuǎn)義閉包示例詳解

    在Swift 中的閉包類似于結(jié)構(gòu)塊,并可以在任何地方調(diào)用,下面這篇文章主要給大家介紹了關(guān)于Swift中轉(zhuǎn)義閉包的相關(guān)資料,需要的朋友可以參考下...

    小小小_小朋友11412021-12-26
  • SwiftSwift教程之基礎(chǔ)數(shù)據(jù)類型詳解

    Swift教程之基礎(chǔ)數(shù)據(jù)類型詳解

    這篇文章主要介紹了Swift教程之基礎(chǔ)數(shù)據(jù)類型詳解,本文詳細講解了Swift中的基本數(shù)據(jù)類型和基本語法,例如常量和變量、注釋、分號、整數(shù)、數(shù)值類型轉(zhuǎn)換等...

    Swift教程網(wǎng)5162020-12-18
  • Swiftmac git xcrun error active developer path 錯誤

    mac git xcrun error active developer path 錯誤

    本文主要是講訴了如何解決在mac下使用git;xcode4.6的環(huán)境時,出現(xiàn)了錯誤(mac git xcrun error active developer path)的解決辦法,希望對大家有所幫助...

    Swift教程網(wǎng)2232020-12-16
  • SwiftSwift使用CollectionView實現(xiàn)廣告欄滑動效果

    Swift使用CollectionView實現(xiàn)廣告欄滑動效果

    這篇文章主要為大家詳細介紹了Swift使用CollectionView實現(xiàn)廣告欄滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Stevin的技術(shù)博客12372021-01-13
主站蜘蛛池模板: 国产精品天天看天天爽 | 国产成人精品午夜免费 | 久久精品亚洲热综合一本 | 午夜理论电影在线观看亚洲 | 亚洲AV久久久噜噜噜久久 | 九9热这里真品 | 亚洲国产精品网 | 校园全肉高h湿一女多男 | 狠狠色综合久久婷婷色天使 | 欧美一级视频在线 | 無码一区中文字幕少妇熟女网站 | 美女被的在线网站91 | 五月色婷婷久久综合 | 1314酒色| 日韩欧美国内 | 欧美式禁忌 | 日本道高清 | 91啦丨porny丨蝌蚪 | 国产免费丝袜调教视频 | 亚洲 欧美 偷自乱 图片 | 亚洲天堂中文 | 农夫69小说小雨与农村老太 | 香蕉 在线播放 | 冰漪丰满大乳人体图片欣赏 | 第一国内永久免费福利视频 | 韩国办公室激情 | 美女视频一区二区三区在线 | 欧美日韩一二三区免费视频观看 | 国产免费好大好硬视频 | 姐姐不~不可以动漫在线观看 | 日韩免费观看成第15集 | 亚洲干综合 | 日本久久啪啪婷婷激情五月 | 精品免费国产 | 末代皇帝无删减版在线观看 | 人体做爰aaaa免费 | 日本人护士免费xxxx视频 | 免费国产高清视频 | 91香蕉依人综合久久 | 成人性生交大片免费看软件 | 免费二级毛片免费完整视频 |