日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機(jī)編程>

原生Swift的模式解析

大?。?/span>0.3 MB 人氣: 2017-09-26 需要積分:1

  介紹:我是Nick O’Neill,今天我們要學(xué)習(xí)如何發(fā)現(xiàn)Swift模式。

  設(shè)計(jì)模式總的來(lái)說(shuō),是編程中的一個(gè)組成部分,它可以解決一個(gè)非常具體的問(wèn)題。應(yīng)用正是由各種各樣的這些模式所組成的。

  一個(gè)簡(jiǎn)單的模式可以是這樣的:通過(guò)一次點(diǎn)擊,應(yīng)用就進(jìn)入下一屏。而復(fù)雜一些的模式則是那些你用來(lái)獲取核心數(shù)據(jù)的東西。一名優(yōu)秀的編程人員,就必須要知道哪種模式可以解決哪種問(wèn)題。但是這些模式并不是靜止不動(dòng)的,尤其是當(dāng)一種新的編程語(yǔ)言出現(xiàn)的時(shí)候,例如Swift,我們就要重新審視這些模式,看看這些模式能否被運(yùn)用在新的語(yǔ)言中。

  Swift中的模式

  我寫(xiě)過(guò)一篇名叫《That Thing in Swift》的博客,那時(shí)我還是一名Objective-C開(kāi)發(fā)人員。當(dāng)Swift出現(xiàn)的時(shí)候,我就開(kāi)始考慮這個(gè)問(wèn)題,將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”

  }

  }

  你需要不斷的拆分這些段落和索引行,而且這段代碼中有著大量的嵌套,看上去讓人暈暈乎乎的,如果你在選擇了這樣的寫(xiě)法,那么在之后的編碼過(guò)程中,你就要不斷地復(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下,解決同樣的問(wèn)題,代碼就會(huì)變成這樣。代碼變短了,也更清晰了,哪個(gè)編程人員不喜歡這樣的代碼?

  所有的section都整齊的排列,你可以輕松的分辨section和row。如果你看到了枚舉之外的語(yǔ)句,你也許應(yīng)該考慮一下它對(duì)枚舉會(huì)起到什么樣的作用。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      偏关县| 梨树县| 什邡市| 大兴区| 金溪县| 三原县| 历史| 抚顺市| 宁国市| 集安市| 治多县| 牙克石市| 治多县| 乌拉特前旗| 亚东县| 鄂温| 闵行区| 工布江达县| 信阳市| 西平县| 泉州市| 汽车| 崇明县| 平泉县| 客服| 天柱县| 磴口县| 鲁山县| 渑池县| 白玉县| 新建县| 偏关县| 鄄城县| 申扎县| 马关县| 宁南县| 建瓯市| 敦化市| 平遥县| 聂荣县| 常州市|