iOS 8開發入門--序言(2)

Swift Playgrounds

在2014年,蘋果公司的世界開發者大會上,蘋果推出了讓所有iOS開發驚訝的新的編程語言Swift。Swift被宣傳為“快速,現代,安全,交互”編程語言。Swift語言簡單易學并且擁有很多提高編程效率的特征。


在Swift語言推出之前,iOS app主要由Objective-C語言編寫。蘋果公司選擇這門語言作為Mac和iOS開發的主語言已經有20多年時間了。我和很多iOS開發人員交流過。他們中的大部分都認為Objective-C不易學習并且語法怪異。簡而言之,Objective-C 代碼嚇到了不少開始學習iOS編程的初學者。Swift編程語言的發布可能就是蘋果公司對這些評論的一種答復。Swift的語法更加整潔并且容易閱讀。從Swift的beta版本發布我就開始使用它編程。我想說,你肯定會認同使用Swift開發會更有效率。Swift確確實實加速了開發進程。一旦你習慣了使用Swift編程,你將不再愿意再使用Ojbective-C。

在我看來,Swift將會吸引更多的網絡開發人員開發App。如果你是一名具有某種腳步語言編程經驗的網絡開發人員,你的經驗將會幫助你更好的掌握iOS開發知識。對你來說Swift學習將會很簡單。即使你完全沒有編程經驗也沒有關系,你會發現這門語言很友好并且使用Swift開發app感覺非常自然。

讓我們通過對比以下程序片段,初步了解一下Swift語言。

第一段代碼是由Objective-C編寫的,而第二段代碼是由Swift編寫的。你喜歡哪種語言呢?我猜想你會更喜歡Swift,特別是你會覺得Objective-C的語法非常怪異。常量和變量是編程語言中最基本的兩個元素。在Objective-C中,當你聲明一個常量或者變量時,你需要指明類型信息,比如integer或者string。對于Swift,引入了一種新的功能,名叫類型推斷(Type inference)。你不再需要說明變量或者常量的類型信息。你只需要使用let說明常量和使用var說明變量即可。Swift足夠智能,可以通過檢查你提供的值來推斷類型。

你可能注意到了另外一個不同:Swift省略了隊尾的分號。在Objective-C,你在句尾梳寫分號。如果你忘記了分號,將會編譯錯誤。很多Objective-C的初學者都經歷過這種錯誤。Swift語言會讓你的開發更加簡單。Swift增加了許多強力特征讓你的編程工作更加流暢。正如你在上面的例子中看見的,String(字符串)的維護更加簡單。在Objective-C中,你需要選擇NSString和NSMutableString類型來暗示該String是否可以背修改。在Swift中你不必這樣做。無論什么時候你將一個字符串String聲明為變量,在你的程序里你都可以修改這個字符串。連接字符串非常簡單。只要使用+號就可以連接兩個字符串。更進一步,Swift允許你直接使用==符號對比字符串。

學習編程最好的方法就是直接寫程序。Xcode 6新增了一個功能叫做Playgrounds。這是一個交互式開發環境,開發者可以在該環境里實驗編程并且可以直接看到程序運行結果。假設你安裝了Xcode 6(或者以上),運行Xcode,你會看到如下開始界面。


Playground是一種特別類型的Xcode文件。你只需要點擊“Start with a Playground”,然后在彈出的界面填寫項目名和選擇平臺類型。你可以使用默認的名字或者自己命名,但記得需要選擇iOS平臺。


一旦你確認并保存信息文件完畢,Xcode將會打開如下Playground交互界面。你會在屏幕中看到在屏幕的左邊面板,是你編輯代碼的界面。


當你在左邊輸入代碼時,Playground將立即解釋你的代碼并在右側面板顯示結果。默認情況下,Playground包含兩行代碼。你可以在右側面板立刻看到“Str”聲明的結果。

我們一起來寫一些代碼。這個練習的目的是讓你初步接觸一下Swift編程并且對Xcode有個初步的印象。在講述過程中我將會解釋一部分代碼。但是即使你看不懂任何一行代碼也沒有關系,特別是你還是一個新手的話。我想你會對一些術語比如:類,方法等感到困惑 。現在,不要多想,全身放松地去使用Xcode。我們將再后面的章節介紹這些概念 。

讓我們馬上開始。

首先,讓我們看一下兩行代碼的關鍵字。這里我們又定義了兩個變量


當你輸入上面的代碼時,你馬上可以在右側的面板上看到結果

讓我們繼續增加下面的代碼

message1 .uppercaseString

Xcode的編輯器會彈出一個自動完成功能。自動完成功能是一項非常友好的能夠幫助你快速完成代碼的功能。一旦你輸入“mess”,你將會看到一個自動完成窗口,里面會給出一些基于你的輸入的一些建議。這時你需要做的就是選擇“message1”并且敲擊回車。


Swift使用點(.)語法來實現方法調用或者訪問變量的屬性。當你在message1后面輸入點時,自動完成窗口會再一次彈出。里面會列出一系列屬于該變量的方法或者屬性。你可以繼續輸入“uppercaseString”或者從自動完成窗口選擇。

一旦你完成輸入,你可以立刻在輸出窗口看到結果。當你使用UppercaseString屬性,message1的內容將會自動

轉換成大寫。

繼續輸入以下代碼


Swift允許你使用+號連接兩個字符串(String)。上面這行代碼將message2的內容轉換成小寫,

并且和另一個string連接在一起。更有趣的是,你可以在你的代碼中包含emoji字符圖形。你可能會問如何在MaxOS中輸入emoji字符。很簡單,按下control+command+spacebar(控制+命令+空格鍵),就會出現emoji圖形選擇窗口。

讓我們繼續輸入下面的代碼片段:


條件邏輯在編程中非常常見。有時候,當某個添加滿足時你想執行某一段確定的代碼。if-else語句是Swift提供的控制流方法之一。在這段代碼中,我們使用==操作符對比了message1和message2。如果它們相等,程序會打印出“Same message”。否則,將會打印出“Not the same message”。你將會在你的屏幕中看到如下結果。


讓我們做一點更有趣的事情,例如創建一個標簽(label),這在用戶界面中非常常見:


這里我們使用內建的UILabel 類創建了一個label并且設置它的大小為300*50。我們把它的text屬性設置為

message1.為了在Playground中預覽UI元素,你可以點擊快速查看(Quick Look)或者歷史值(Value History)圖標。快速查看功能通過一個彈出窗口顯示label。如果你使用歷史值(Value History),則Playground會打開一個獨立的預覽面板


剛才的label是一個毫無特色的label。改變它的顏色應該是個不錯的想法。不錯的是,你只需要一行代碼就可以定制顏色。你還可以很容易的中間對齊文本或者將label設置成圓角。輸入如下代碼你將會看到一個橘黃色的圓角label。


這就是iOS SDK的強大能力。它里面包含了成千上萬的預定義的元素,并且開發人員只需要很少的代碼就可以定制這些元素。


要說一下,不要被我誤導了。一般來說創建用戶界面你不需要輸入代碼。Xcode提供一個叫Storyboard(故事板)的功能,你可以通過拖拽來設計UI。我們將會再下一章講述。

所以你現在對Swift已經有初步概念了。你現在感覺Swift怎么樣呢?喜歡它嗎?我希望你能感覺到Swift非常容易學習和使用。最重要的是,我希望Swift不會讓你不再想開發app。下一章,你將會學到如何創建你的第一個app。

專題目錄:

IOS 8 開發入門--序言(一)

IOS 8 開發入門--序言(二)

第一章:創建你的第一個App(一)

第一章:創建你的第一個App(二)

第二章:使用Storyboard設計用戶界面(一)

第二章:使用Storyboard設計用戶界面(二)

第三章 Hello World App 淺述(二)

第四章 自動布局(一)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容