原生Swift的模式解析
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
介紹:我是Nick O’Neill,今天我們要學(xué)習(xí)如何發(fā)現(xiàn)Swift模式。
設(shè)計(jì)模式總的來說,是編程中的一個(gè)組成部分,它可以解決一個(gè)非常具體的問題。應(yīng)用正是由各種各樣的這些模式所組成的。
一個(gè)簡單的模式可以是這樣的:通過一次點(diǎn)擊,應(yīng)用就進(jìn)入下一屏。而復(fù)雜一些的模式則是那些你用來獲取核心數(shù)據(jù)的東西。一名優(yōu)秀的編程人員,就必須要知道哪種模式可以解決哪種問題。但是這些模式并不是靜止不動(dòng)的,尤其是當(dāng)一種新的編程語言出現(xiàn)的時(shí)候,例如Swift,我們就要重新審視這些模式,看看這些模式能否被運(yùn)用在新的語言中。
Swift中的模式
我寫過一篇名叫《That Thing in Swift》的博客,那時(shí)我還是一名Objective-C開發(fā)人員。當(dāng)Swift出現(xiàn)的時(shí)候,我就開始考慮這個(gè)問題,將Objective-C中的模式轉(zhuǎn)移到Swift中。
靜態(tài)單元格
這是一個(gè)基本的靜態(tài)單元格視圖。
Objective-C下的表達(dá)方式
if (indexPath.section == 0) {
if(indexPath.row == 0) {
cell.textLabel.text = @“Twitter”
} else if (indexPath.row == 1) {
cell.textLabel.text = @“Blog”
} else {
cell.textLabel.text = @“Contact Us”
}
} else {
if(indexPath.row == 0) {
cell.textLabel.text = @“nickoneill”
} else if (indexPath.row == 1) {
cell.textLabel.text = @“objctoswift”
} else {
cell.textLabel.text = @“@whyareyousodumb”
}
}
你需要不斷的拆分這些段落和索引行,而且這段代碼中有著大量的嵌套,看上去讓人暈暈乎乎的,如果你在選擇了這樣的寫法,那么在之后的編碼過程中,你就要不斷地復(fù)制這段代碼。于是,代碼的體積就會(huì)異常龐大,內(nèi)容也會(huì)顯得非常雜亂,編程人員肯定不會(huì)喜歡這樣的事情。
Swift下的表達(dá)方式
let shortPath = (indexPath.section, indexPath.row)
switch shortPath {
case (0,0):
cell.textLabel.text = “Twitter”
case (0,1):
cell.textLabel.text = “Blog”
case (0,2):
cell.textLabel.text = “Contact Us”
case (1,0):
cell.textLabel.text = “@nickoneill”
case (1,1):
cell.textLabel.text = “@objctoswift”
case (1,2):
cell.textLabel.text = “@whyareyousodumb”
default:
cell.textLabel.text = “ ?\\_(θ)_/ ?”
}
而在Swift下,解決同樣的問題,代碼就會(huì)變成這樣。代碼變短了,也更清晰了,哪個(gè)編程人員不喜歡這樣的代碼?
所有的section都整齊的排列,你可以輕松的分辨section和row。如果你看到了枚舉之外的語句,你也許應(yīng)該考慮一下它對(duì)枚舉會(huì)起到什么樣的作用。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
原生Swift的模式解析下載
相關(guān)電子資料下載
- 拿下國家級(jí)信創(chuàng)認(rèn)證!中科馭數(shù)KPU SWIFT-2200N成為國內(nèi)首款滿足金融業(yè)嚴(yán)苛要求的 163
- 中科馭數(shù)基于DPU的思威SWIFT系列智能網(wǎng)卡與統(tǒng)信軟件產(chǎn)品完成適配 176
- 如何使用Swift提高代碼質(zhì)量 126
- 積木易搭Magic Swift Plus為雕刻工藝品精雕復(fù)刻提供三維數(shù)字化解決方案 274
- 詞法分析-Antlr-1 235
- Kotlin 1.8.0發(fā)布,改進(jìn)性能和Swift的互操作性 1044
- Swift 2023:強(qiáng)調(diào)并發(fā)、泛型和C++互操作性,開發(fā)Swift解析器 300
- 彩色套件創(chuàng)建全彩3D模型MagicSwiftPlus僅千元級(jí) 432
- Swift的使用體驗(yàn)與生態(tài)發(fā)展之路 981
- 如何加速apply函數(shù)600倍的技巧 627