国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

iOS 8應用構!建細節挖掘之應用啟動流程

2019-11-02 14:31:47
字體:
來源:轉載
供稿:網友

 本文遵循“署名-非商業用途-保持一致”創作公用協議

轉載請保留此句:太陽火神的美麗人生 - 本博客專注于 敏捷開發及移動和物聯設備研究:iOSAndroid、Html5、Arduino、pcDuino,否則,出自本博客的文章拒絕轉載或再轉載,謝謝合作。

 

24K 標題黨!

不過內容絕對夠細節而全面,僅針對啟動流程這一小塊塊喲!

 

iOS 應用啟動流程,這個話題早在09年就非常熟悉,然而時隔多年,不知是否還熟悉,尤其 StoryBoard 的引入,那么下面就一起來看看吧,如果確實說明白了,給個評論,或哪里有不足,需要完善,也給個指點。

 

由于 Objective-C 是對 C 的擴展,那么 main 函數理所當然地繼承了程序入口的位置,而不像安卓,雖然它的程序入口點可能也是 main ,但那是掩埋在系統框架之內根源處的,也或許叫別的名字,想了解可參考Android系統啟動過程。

 

在 XCode 5.1.1 (2014-07-20 周日,此時 iOS 8 已經發布,但還未正式上架應用,beta 3 據說已經可以供開發者償鮮)中新建一個單視圖應用 (Single View Application)。

 

XCode 工程中總有很多羅里巴山的文件,不過這也正是它先進之處,控制權集中,撒出多個點,來供開發者配置以改變應用的運行效果,或許用傻瓜式的應用架構方式更貼切一些,不過,像 iOS 這樣不開源的架構,是否長此以往,我們的后代人是否會真的變成傻瓜,對架構內部的程序藝術完全不了解,喪失了這種架構能力了呢?!

 

切入主題,程序入口 main.m 文件如下:

1 2 3 4 5 6 7 8 9 10
世界歷史機密[www.9-39.com/html/world/]
#import <uikit uikit.h=""> #import "AppDelegate.h"   int main(int argc, char * argv[]) {     @autoreleasepool {         return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));     } } </uikit>

main 函數,和 C 語言中的一模一樣,帶兩個參數,argc 是參數個數,argv 是參數的字符串數組,或者叫列表也行。

 

 

上面兩行中 #import 是Objective-C 中新引入的和 #include 宏指令一樣的功能,引入其它頭文件。

之所以要引入這個新的指令來包含頭文件,是因為 #include 會存在重復引入的問題,即一個頭文件被引入多次,那么就可能定義了多個對象或變量,那是會出錯的。

所以,在 C 中,會使用宏指令來判斷一個頭文件中的預定義宏名是否存在,不存在則在宏條件判斷中使用 #include 引入頭文件,否則不走這一宏分支,頭文件就不會被引入。

 

Availability.h 頭文件的精簡結構如下,雖然在 -Prefix.pch 文件中是使用 #import 引入的該頭文件,但也不可掉以輕心,因為該文件還有可能在 C 代碼中使用 #include 引入,所以仍然加了 C 樣式的唯一引入宏結構:

1 2 3 4 5 6 7 #ifndef __AVAILABIL
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳阳市| 淳化县| 远安县| 湛江市| 疏勒县| 古交市| 灵宝市| 交口县| 莲花县| 宽城| 闻喜县| 双牌县| 会同县| 霞浦县| 石狮市| 古交市| 仪陇县| 宣恩县| 沂水县| 都江堰市| 教育| 陆河县| 珲春市| 涿州市| 陕西省| 乐陵市| 湘潭县| 慈利县| 科尔| 朝阳区| 高雄县| 阿拉善右旗| 天气| 蒙自县| 如东县| 乳源| 江门市| 天柱县| 班玛县| 临安市| 马山县|