精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

原生Swift的模式解析

大小:0.3 MB 人氣: 2017-09-26 需要積分:1

  介紹:我是Nick O’Neill,今天我們要學習如何發現Swift模式。

  設計模式總的來說,是編程中的一個組成部分,它可以解決一個非常具體的問題。應用正是由各種各樣的這些模式所組成的。

  一個簡單的模式可以是這樣的:通過一次點擊,應用就進入下一屏。而復雜一些的模式則是那些你用來獲取核心數據的東西。一名優秀的編程人員,就必須要知道哪種模式可以解決哪種問題。但是這些模式并不是靜止不動的,尤其是當一種新的編程語言出現的時候,例如Swift,我們就要重新審視這些模式,看看這些模式能否被運用在新的語言中。

  Swift中的模式

  我寫過一篇名叫《That Thing in Swift》的博客,那時我還是一名Objective-C開發人員。當Swift出現的時候,我就開始考慮這個問題,將Objective-C中的模式轉移到Swift中。

  靜態單元格

  這是一個基本的靜態單元格視圖。

  Objective-C下的表達方式

  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”

  }

  }

  你需要不斷的拆分這些段落和索引行,而且這段代碼中有著大量的嵌套,看上去讓人暈暈乎乎的,如果你在選擇了這樣的寫法,那么在之后的編碼過程中,你就要不斷地復制這段代碼。于是,代碼的體積就會異常龐大,內容也會顯得非常雜亂,編程人員肯定不會喜歡這樣的事情。

  Swift下的表達方式

  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下,解決同樣的問題,代碼就會變成這樣。代碼變短了,也更清晰了,哪個編程人員不喜歡這樣的代碼?

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

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?