最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

swift中的@UIApplicationMain示例詳解

 更新時(shí)間:2017年12月28日 10:00:02   作者:Inlight先森  
這篇文章主要給大家介紹了關(guān)于swift中@UIApplicationMain的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

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

程序如何開始的

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

#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 方法,這個(gè)方法根據(jù)第三個(gè)參數(shù)初始化一個(gè) UIApplication 或者它的子類對(duì)象開始接收事件。當(dāng)傳入 nil 時(shí)則使用默認(rèn)的 UIApplication。最后一個(gè)參數(shù)指定了 AppDelegate 類作為應(yīng)用的委托,用來接收與應(yīng)用生命周期相關(guān)的委托方法。

- (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 {
}

雖然這個(gè)方法標(biāo)明要返回一個(gè) int,但其實(shí)它并不會(huì)真正的返回,而是一直存在于內(nèi)存中,直到用戶或者系統(tǒng)將應(yīng)用強(qiáng)制終止。

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

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

import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
}

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

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ā)送事件(點(diǎn)擊按鈕之類的)我們都可以監(jiān)聽到了。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Swift 中如何使用 Option Pattern 改善可選項(xiàng)的 API 設(shè)計(jì)

    Swift 中如何使用 Option Pattern 改善可選項(xiàng)的 API 設(shè)計(jì)

    這篇文章主要介紹了Swift 中如何使用 Option Pattern 改善可選項(xiàng)的 API 設(shè)計(jì),幫助大家更好的進(jìn)行ios開發(fā),感興趣的朋友可以了解下
    2020-10-10
  • 初探Swift3.0帶來的變化匯總

    初探Swift3.0帶來的變化匯總

    這個(gè)周末抽空看了下swift3.0的變化,今天小編通過本教程給大家分享Swift3.0帶來的變化,非常不錯(cuò),感興趣的朋友參考下吧
    2016-12-12
  • swift中正確安全聲明一個(gè)單例的方法實(shí)例

    swift中正確安全聲明一個(gè)單例的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于swift中如何正確安全聲明一個(gè)單例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Swift利用純代碼實(shí)現(xiàn)時(shí)鐘效果實(shí)例代碼

    Swift利用純代碼實(shí)現(xiàn)時(shí)鐘效果實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Swift利用純代碼實(shí)現(xiàn)時(shí)鐘效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用swift具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • OpenStack的Swift組件詳解

    OpenStack的Swift組件詳解

    這篇文章主要介紹了OpenStack的Swift組件,對(duì)swift感興趣的同學(xué),可以參考下
    2021-04-04
  • Swift?重構(gòu)重載運(yùn)算符示例解析

    Swift?重構(gòu)重載運(yùn)算符示例解析

    這篇文章主要為大家介紹了Swift?重構(gòu)重載運(yùn)算符示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Swift編程中數(shù)組的使用方法指南

    Swift編程中數(shù)組的使用方法指南

    這篇文章主要介紹了Swift編程中數(shù)組的使用方法指南,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • iOS中Swift指觸即開集成Touch ID指紋識(shí)別功能的方法

    iOS中Swift指觸即開集成Touch ID指紋識(shí)別功能的方法

    隨著移動(dòng)支付時(shí)代的到來,Touch ID 指紋驗(yàn)證迅速被支付寶,微信錢包普及,相信各位朋友使用后也大呼方便。下面給大家分享iOS中Swift指觸即開集成Touch ID指紋識(shí)別功能的方法,一起看看吧
    2017-03-03
  • RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift是Swift函數(shù)響應(yīng)式編程的一個(gè)開源庫(kù),由Github的ReactiveX組織開發(fā),維護(hù)。下面這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)之基礎(chǔ)篇的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • Swift中排序算法的簡(jiǎn)單取舍詳解

    Swift中排序算法的簡(jiǎn)單取舍詳解

    對(duì)于排序算法, 通常簡(jiǎn)單的, 為大家所熟知的有, 選擇排序, 冒泡排序, 快速排序, 當(dāng)然還有哈希, 桶排序之類的, 本文僅比較最為常見的選擇, 冒泡和快排,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2018-03-03

最新評(píng)論

南澳县| 凭祥市| 双柏县| 沛县| 蕲春县| 马山县| 剑河县| 仁寿县| 澄江县| 揭东县| 正镶白旗| 三穗县| 漳平市| 秦皇岛市| 胶州市| 张家川| 屏东县| 偏关县| 高阳县| 柘荣县| 江安县| 元氏县| 隆德县| 阳高县| 邵武市| 丰原市| 思南县| 南昌市| 河津市| 岳池县| 普安县| 兰州市| 九江县| 民县| 江津市| 当涂县| 汝南县| 砀山县| 商丘市| 大渡口区| 理塘县|