認識Xcode——從零開始實現(xiàn)一個iOS應用其1

前言

本篇旨在為iOS開發(fā)尚未入門的同學提供一些基本的指引玷或,但仍要求你具備最基本的C語言以及Objective-C編程常識通铲。

刨根問底是一個好習慣毕莱,它是一個優(yōu)秀軟件工程師的基本素養(yǎng),但是對于編程新手來說,我們不必問太多的為什么朋截,只需要跟著做蛹稍,也許你一開始迷迷糊糊,多一點耐心和虛心部服,其中的真意最終都會漸漸顯露唆姐。

新建一個iOS應用工程

打開蘋果為我們提供的開發(fā)工具——Xcode。

image.png

點擊"Create a new Xcode project"廓八,意為“創(chuàng)建一個新的Xcode工程”奉芦。

接下來會彈出一個工程模板界面。

image.png

此處選擇iOS下的"Single View App"剧蹂,意為"單視圖應用"声功,點擊next,來到工程設(shè)置界面宠叼。

image.png

這個界面的眾多選項目前我們不必一一深究先巴,在Product Name下填入工程名稱,將Language設(shè)置為Objective-C后即可點擊next冒冬,選擇工程存放的位置后伸蚯,便完成了工程的創(chuàng)建。

如果勾選了下面的Source Control窄驹,那么Xcode會自動將工程加入到自帶的Git的版本控制中朝卒,無論你是否了解,都建議勾選上乐埠,不懂的同學以后可以了解一下Git的使用方法~

image.png

接下來我們正式進入到Xcode的主界面抗斤。

image.png

1:頂欄(我也不知道這個該叫啥2333,總之它不會消失就是了)

2:導航欄 (navigator)

3:編輯區(qū)

4:檢測欄 (inspector)

5:調(diào)試區(qū)——變量視圖

6:調(diào)試區(qū)——控制臺

如果你看到的界面和我的不一樣丈咐,那么有可能是某些區(qū)域被隱藏起來了瑞眼,其中導航欄,檢測欄棵逊,調(diào)試區(qū)三大區(qū)域的隱藏與顯示由頂欄最右側(cè)的三個按鈕控制伤疙,而調(diào)試區(qū)的兩個部分的顯示與隱藏則在調(diào)試區(qū)右下角控制。

認識 iOS 工程

簡單的熟悉了一下界面后辆影,就暫且不要再繼續(xù)深究每個按鈕的作用了徒像,讓我們把注意力轉(zhuǎn)移到左側(cè)的導航欄中,這里展示的是當前工程的目錄蛙讥。

系統(tǒng)為我們創(chuàng)建了兩個文件夾锯蛀,其中一個以當前的工程命名,另外一個叫做Product次慢,其下只有一個.app文件旁涤,這個就是我們的工程編譯完成后的應用文件翔曲。

重點在第一個文件夾下,接下來我們從程序運行的角度來認識一下這些文件劈愚。

image.png

大家應該知道在C語言中瞳遍,程序在運行之初會調(diào)用main函數(shù),因此我們先進入到main.m中瞧一瞧菌羽。

main.m

image.png

如圖所示掠械,在main.m文件中導入了兩個非常重要的頭文件

  • UIKit/UIKit.h
  • AppDelegate.h

其一是官方提供的iOS開發(fā)框架,我們?nèi)蘸髸敿毩私馑阍洌涠窃趯Ш綑谥锌吹降奈募?/p>

接下來便是一個main函數(shù)份蝴,在這之中只調(diào)用了一個方法

  • UIApplicationMain

我們按住command,將光標移動到UIApplicationMain函數(shù)上氓轰,單擊左鍵。

此時會彈出一個菜單浸卦。

image.png

點擊Jump to Definition署鸡,即跳轉(zhuǎn)到定義(留意,這是一個常用操作)限嫌。

image.png

注意看UIApplicationMain上方的注釋靴庆,它提示了這個函數(shù)主要做的兩件事。

  1. 當principalClassName(即第三個參數(shù))為nil時怒医,NSPrincipalClass的值將從Info.plist中獲取炉抒,如果在那里面沒有定義NSPrincipalClass的值,那么它的值將從UIApplication類中獲取稚叹。
  2. 初始化delegate類焰薄。

目前我們只需要知道,應用在運行時扒袖,首先要從Info.plist文件中獲取某些配置塞茅,再初始化代理類,也就是main.m中傳入的AppDelegate季率。

Info.plist

Info.plist的本質(zhì)是一個XML文件野瘦,它包含了一系列應用運行相關(guān)的配置,暫時無需關(guān)注飒泻,我們來看AppDelegate類鞭光。

AppDelegate

image.png

AppDelegate.m下寫了一大堆代理回調(diào)方法,不要害怕泞遗,只需要一點點的英語基礎(chǔ)惰许,仔細看,每個回調(diào)方法的名稱都是程序運行周期中不同階段的名稱刹孔。有關(guān)程序運行周期的要點我們以后再提啡省,這里我們只需要知道可以在AppDelegate里處理程序生命周期各個階段的事務(wù)娜睛。

Assets.xcassets

用于管理和存放圖片資源,這里可不是簡單的文件夾哦卦睹,關(guān)于它的使用方法我們以后再提畦戒。

使用純代碼編寫頁面

我們已經(jīng)稍微了解了工程文件夾下的大部分文件,對于iOS開發(fā)的陌生感有沒有減少一點呢结序?還剩下Main.storyboard障斋,LaunchScreen.storyboard,以及ViewController這三個文件沒有提到徐鹤,不要著急垃环,馬上就可以上手了。

Xcode為我們提供了兩種頁面的編寫方式返敬,一種是可視化的方式遂庄,也就是在storyboard里通過拖拽控件進行頁面布局,另一種是使用純代碼編寫劲赠。

對于入門的iOS開發(fā)者涛目,我強烈建議從純代碼入手,這樣不僅利于自己的成長凛澎,而且純代碼開發(fā)對于團隊合作也十分有利霹肝,可視化開發(fā)可以在今后的學習中自行了解。接下來讓我們準備用純代碼開始塑煎。

第一步沫换,刪除Main.storyboard

在Main.storyboard上點擊右鍵,選擇delete最铁,彈出如下界面讯赏。

image.png

中間的按鈕(Remove Reference)代表僅解除文件和工程之間的關(guān)聯(lián),但文件本身還存在于工程文件夾中炭晒,右側(cè)的按鈕(Move to Trash)不僅會解除關(guān)聯(lián)待逞,還會將Main.storyboard扔進廢紙簍,因為我們肯定不需要Main.storyboard了网严,所以將它扔進廢紙簍吧识樱。

第二步,刪除工程中的主界面配置

點擊導航欄中的工程文件震束,找到右側(cè)的Main Interface怜庸,刪去框框里的Main。

image.png

第三步垢村,在AppDelegate.m里配置啟動頁面

來到AppDelegate.m下割疾,找到didFinishLaunchingWithOptions這個回調(diào)方法,意為程序完成啟動時嘉栓。

我們在這個方法里寫上如下三句話宏榕。

    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    
    self.window.rootViewController = [[ViewController alloc]init];
    
    [self.window makeKeyAndVisible];

image.png

注意看到第二句話拓诸,我們將ViewController作為了程序的根視圖控制器,這意味著進入程序后看到的第一個視圖界面就是ViewController麻昼,那么就讓我們運行試試吧奠支。

運行工程

image.png

在Xcode左上角選擇運行的設(shè)備,這里我們選擇iPhone 6的模擬器抚芦,然后點擊最左側(cè)的運行按鈕倍谜,或者是使用command + R的組合鍵,程序就開始運行了叉抡。

image.png
image.png

運行成功~ 這里就是我們的ViewController界面尔崔,它還是一片漆黑,因為我們還什么都沒有寫褥民,但是可喜可賀季春,你已經(jīng)堅持做到這里來了,萬事開頭難轴捎,先休息或者回顧一下這一篇的知識點鹤盒,下一篇我們再來談一談什么是視圖控制器(UIViewController)

本篇到此為止,希望這對你有幫助侦副,如果有錯誤或是有需要補充的地方,望告知驼鞭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秦驯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子挣棕,更是在濱河造成了極大的恐慌译隘,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洛心,死亡現(xiàn)場離奇詭異固耘,居然都是意外死亡,警方通過查閱死者的電腦和手機词身,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門厅目,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人法严,你說我怎么就攤上這事损敷。” “怎么了深啤?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵拗馒,是天一觀的道長。 經(jīng)常有香客問我溯街,道長诱桂,這世上最難降的妖魔是什么洋丐? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮挥等,結(jié)果婚禮上友绝,老公的妹妹穿的比我還像新娘。我一直安慰自己触菜,他們只是感情好九榔,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涡相,像睡著了一般哲泊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上催蝗,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天切威,我揣著相機與錄音,去河邊找鬼丙号。 笑死先朦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的犬缨。 我是一名探鬼主播喳魏,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怀薛!你這毒婦竟也來了刺彩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤枝恋,失蹤者是張志新(化名)和其女友劉穎吹截,沒想到半個月后画株,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年趁窃,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞻赶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绿鸣。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡肥橙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摆出,到底是詐尸還是另有隱情朗徊,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布偎漫,位于F島的核電站爷恳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏象踊。R本人自食惡果不足惜温亲,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一棚壁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧栈虚,春花似錦袖外、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粘姜,卻和暖如春鬓照,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背孤紧。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工豺裆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人号显。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓臭猜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親押蚤。 傳聞我的和親對象是個殘疾皇子蔑歌,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345