擴(kuò)展護(hù)照App的功能~第六章練習(xí)Expanding the Passport App

這次的練習(xí)我們將擴(kuò)展第五章開發(fā)的Passport App割择,在本次練習(xí)中错邦,我們將全面過一遍Debugger和documentation(文檔)邀窃,最后,我們還會(huì)給App增加應(yīng)用圖標(biāo)和啟動(dòng)界面儡炼。見圖6-11。

Page 174 | Chapter 6 : Next Steps : Debugging, Documentation, and App Icons

圖6-11

首先我們找到Passport工程文件夾(見圖6-12)查蓉,打開Passport文件夾乌询,文件夾中有三部分,兩個(gè)文件夾和一個(gè)Passport.xcodeproj文件豌研。

圖6-12

Exercise: Expanding the Passport App | Page 175

見圖6-13的文件妹田,這些文件構(gòu)成了Passport應(yīng)用,在這里的文件層次和你Xcode中Project Navigator看到的文件層次是不一樣的鹃共。

圖6-13

Page 176 | Chapter 6 : Next Steps : Debugging, Documentation, and App Icons

三個(gè).swift文件蹈丸,文件名中包含其代表的類,Base.lproj文件夾中有.storyboard文件装畅,image.xcassets文件夾中保存App的圖標(biāo)恭应,Info.plist文件用來存儲(chǔ)App的一些細(xì)節(jié),例如版本號(hào)阴孟,bundle identifier(Bundle ID)晌纫。雙擊擴(kuò)展名.xcodeproj的文件打開工程。

我們要在Passport App中增加國家永丝,然后顯示在國家清單中锹漱。點(diǎn)開CountriesTableViewController.swift文件,把鼠標(biāo)放到數(shù)組中England后面慕嚷,然后輸入“Spain”哥牍,要在數(shù)組的中括號(hào)中輸入,然后點(diǎn)擊Play按鈕(Command+R)闯冷。

哎呀砂心,報(bào)錯(cuò)了。點(diǎn)擊左側(cè)的紅點(diǎn)蛇耀,然后出現(xiàn)Fix-It彈出框(見圖6-14)辩诞。點(diǎn)擊Fix-It,自動(dòng)在數(shù)組中添加一個(gè)逗號(hào)纺涤。然后點(diǎn)擊Play按鈕(Command+R)译暂。

圖6-14

Exercise: Expanding the Passport App | Page 177

App啟動(dòng)后,點(diǎn)擊Show Countries按鈕撩炊,查看剛剛增加的國家(見圖6-15)外永。

圖6-15

Page 178 | Chapter 6 : Next Steps : Debugging, Documentation, and App Icons

Spain并沒有出現(xiàn)在table view中,關(guān)閉iOS模擬器拧咳,然后回到CountriesTableViewController.swift文件伯顶。

滑倒cellForRowAtIndexFath方法,把鼠標(biāo)放到cell.textLabel.text = country下方,Editor左側(cè)有一條灰色的區(qū)域祭衩,這塊區(qū)域叫做gutter灶体,點(diǎn)擊cell.textLabel.text = country下方那行的gutter,生成一個(gè)breakpoint的(斷點(diǎn))掐暮。

生成breakpoint后會(huì)在gutter上出現(xiàn)一個(gè)藍(lán)色的箭頭蝎抽,這個(gè)藍(lán)色箭頭就是breakpoint(圖6-16)。breakpoint會(huì)暫停程序運(yùn)行路克,允許你一步一步的檢查每一行代碼樟结。用這種方法,可以能夠找到問題所在精算。點(diǎn)擊Play按鈕(Command+R)瓢宦。

圖6-16

Exercise: Expanding the Passport App | Page 179

App啟動(dòng)后,點(diǎn)擊Show Countries按鈕殖妇,這時(shí)模擬器會(huì)隱藏起來刁笙,Xcode出現(xiàn)在最前面破花,有breakpoint(斷點(diǎn))的那行代碼會(huì)高亮綠色背景谦趣,Debugger也會(huì)出現(xiàn)在Xcode最下方(見圖6-17)。

圖6-17

Page 180 | Chapter 6 : Next Steps : Debugging, Documentation, and App Icons

Debugger左側(cè)的清單列出了所有的變量座每,這個(gè)清單叫做variables view前鹅。請(qǐng)注意,country變量目前是設(shè)置成了Italy峭梳。點(diǎn)擊debug tool(調(diào)試工具欄)中的Continue按鈕舰绘,從左往右數(shù)第三個(gè)按鈕,外表看起來像是Play按鈕葱椭。

下載的指示會(huì)立即出現(xiàn)捂寿,然后breakpoint所在的那行代碼被標(biāo)注出綠色背景,再看country這個(gè)變量孵运,現(xiàn)在被設(shè)置成了Norway秦陋。然后繼續(xù)點(diǎn)擊debug tool(調(diào)試工具欄)中的Continue按鈕。

下載的指示會(huì)立即出現(xiàn)治笨,然后breakpoint所在的那行代碼被標(biāo)注出綠色背景驳概,再看country這個(gè)變量,現(xiàn)在被設(shè)置成了England旷赖。然后繼續(xù)點(diǎn)擊debug tool(調(diào)試工具欄)中的Continue按鈕顺又。

這時(shí)模擬器再次出現(xiàn)了,table view中還是和上次同樣的三個(gè)國家等孵。調(diào)試區(qū)域顯示cellForRowAtIndexFath方法被調(diào)用了三次稚照。

打開CountriesTableViewController.swift文件,去掉gutter上的breakpoint(斷點(diǎn)),看一下numberOfRowsInSection方法果录,返回值是3腌闯,這意味著table view中只有3個(gè)cell,把返回值那行代碼修改為:

return countries.count

這行代碼會(huì)讓cell的數(shù)量等于數(shù)組countries中的元素?cái)?shù)量雕憔。這樣姿骏,countries數(shù)組中每個(gè)元素都會(huì)有一個(gè)cell,所有的元素現(xiàn)在都能夠顯示到table view中了斤彼。點(diǎn)擊Play按鈕(Command+R)分瘦。

恭喜你!你剛剛修復(fù)了你第一個(gè)bug琉苇!

Documentation文檔

要是cell還能顯示更多東西就好了嘲玫。找到cellForRowAtIndexFath方法,按住Option鍵并扇,點(diǎn)擊方法中UITableViewCell這個(gè)詞去团,會(huì)出現(xiàn)一個(gè)快速幫助框(見圖6-18)。點(diǎn)擊UITableViewCellClass鏈接穷蛹。

圖6-11

Exercise: Expanding the Passport App | Page 181

出現(xiàn)UITableViewCell文檔窗口土陪,左側(cè)是文檔目錄,往下滑找到accessoryTpye然后點(diǎn)擊肴熏,文檔會(huì)出現(xiàn)下面的內(nèi)容:

The accessory view appears in the right side of the cell in the table view’s normal (default)state. The standard accessory views include the disclosure chevron; for a description ofvalid accessoryType constants, see UITableViewCellAccessoryType.

點(diǎn)擊UITableViewCellAccessoryTpye鬼雀,出現(xiàn)下列列表:

? None
? DisclosureIndicator
? DetailDisclosureButton
? Checkmark
? DetailButton

估計(jì)給每個(gè)國家增加一個(gè)check框會(huì)是不錯(cuò)的效果。關(guān)閉文檔蛙吏,把鼠標(biāo)放到cell.textLabel.text = country下方源哩,增加下方代碼:

cell.accessoryType = .Checkmark

點(diǎn)擊Play按鈕(Command+R),現(xiàn)在tableview中每行都有checkmark了(見圖6-19)鸦做。

圖6-19

Page 182 | Chapter 6 : Next Steps : Debugging, Documentation, and App Icons

App Icon應(yīng)用圖標(biāo)

現(xiàn)在是時(shí)候給你的工程添加應(yīng)用圖標(biāo)了励烦。你可以從這個(gè)網(wǎng)站下載圖標(biāo)http://www.AppSchool.com/book.(這個(gè)網(wǎng)站我是打不開,你們?nèi)ゾW(wǎng)上下載免費(fèi)的圖標(biāo)用吧)泼诱。

Exercise: Expanding the Passport App | Page 183

接下來坛掠,打開文件夾,把文件夾放到圖6-20這個(gè)位置坷檩,正好在Xcode的右下角却音,打開Xcode中的Images.xcassets,點(diǎn)擊AppIcon矢炼,把圖標(biāo)拖到對(duì)應(yīng)的位置系瓢。

圖6-20

把每個(gè)文件放到對(duì)應(yīng)的框中(圖6-21)。

圖6-21

Page 184 | Chapter 6 : Next Steps : Debugging, Documentation, and App Icons

App圖標(biāo)添加完畢句灌。

打開LaunchScreen.xib文件夷陋,去掉Passport Label(見圖6-22)欠拾。選中Label刪掉。點(diǎn)擊Play按鈕(Command+R)啟動(dòng)模擬器骗绕。

圖6-22

點(diǎn)擊模擬器藐窄,這時(shí)頂部菜單選擇Hardware -> Home,可以看到我們剛剛設(shè)置的App Icon效果(圖6-23)酬土。

圖6-23

Exercise: Expanding the Passport App | Page 185

如果App沒有按照你想要的結(jié)果運(yùn)行荆忍,或者程序有了錯(cuò)誤或警告,不要太擔(dān)心撤缴,學(xué)習(xí)的最佳方式就是試錯(cuò)刹枉,熟能生巧,到我們的網(wǎng)站上下載示例代碼屈呕,對(duì)比一下代碼微宝,多試幾次,直到搞定這個(gè)程序?yàn)橹埂?/p>

Page 186 | Chapter 6 : Next Steps : Debugging, Documentation, and App Icons

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虎眨,一起剝皮案震驚了整個(gè)濱河市蟋软,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗽桩,老刑警劉巖岳守,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異涤躲,居然都是意外死亡棺耍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門种樱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人俊卤,你說我怎么就攤上這事嫩挤。” “怎么了消恍?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵岂昭,是天一觀的道長。 經(jīng)常有香客問我狠怨,道長约啊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任佣赖,我火速辦了婚禮恰矩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘憎蛤。我一直安慰自己外傅,他們只是感情好纪吮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萎胰,像睡著了一般碾盟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上技竟,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天冰肴,我揣著相機(jī)與錄音,去河邊找鬼榔组。 笑死嚼沿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瓷患。 我是一名探鬼主播骡尽,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼擅编!你這毒婦竟也來了攀细?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤爱态,失蹤者是張志新(化名)和其女友劉穎谭贪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锦担,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俭识,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洞渔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片套媚。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖磁椒,靈堂內(nèi)的尸體忽然破棺而出堤瘤,到底是詐尸還是另有隱情,我是刑警寧澤浆熔,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布本辐,位于F島的核電站,受9級(jí)特大地震影響医增,放射性物質(zhì)發(fā)生泄漏慎皱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一叶骨、第九天 我趴在偏房一處隱蔽的房頂上張望茫多。 院中可真熱鬧,春花似錦邓萨、人聲如沸地梨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宝剖。三九已至洁闰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間万细,已是汗流浹背扑眉。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赖钞,地道東北人腰素。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像雪营,于是被迫代替她去往敵國和親弓千。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容