《從零開始學Swift》學習筆記(Day 52)——Cocoa錯誤處理模式

智捷關東昇發表於2016-03-25

原創文章,歡迎轉載。轉載請註明:關東昇的部落格

  Swift錯誤處理模式,在Swift 1.x和Swift 2.0是不同的兩種模式。
  Swift 1.x程式碼錯誤處理模式採用Cocoa框架錯誤處理模式,到現在Objective-C還沿用這種處理模式,而Swift 2.0之後採用了do-try-catch錯誤處理模式。
  下面的示例程式碼是從檔案中讀取字串到記憶體中,如果使用Swift 1.x錯誤處理模式程式碼如下:

import Foundation

var err: NSError?        //定義可選的NSError?變數

let contents = NSString(contentsOfFile: filePath, 
                         encoding: NSUTF8StringEncoding, error: &err)

if err != nil {        //判斷err變數是否還是nil
    // 錯誤處理

}

  NSError?一定是可選的變數,因為要給它初始化為nil。
  判斷err變數是否還是nil,如果還是nil在程式碼

let contents = NSString(contentsOfFile: filePath,  encoding: NSUTF8StringEncoding, error: &err)

  方法呼叫過程中沒有發生錯誤,否則說明有錯誤發生。
  上述程式碼的建構函式,它的Swift語法定義如下:

init?(contentsOfURL url: NSURL, encoding enc: UInt, error error: NSErrorPointer)

  建構函式的最後一個引數是NSErrorPointer(即NSError指標),那麼在實際呼叫時候我們需要傳遞err變數地址(即&err),&是取地址符。當方法呼叫完成後,如果有錯誤則err變數會被賦值。

歡迎關注關東昇新浪微博@tony_關東昇。 關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程資訊

enter image description here

更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com 智捷課堂論壇網站:http://51work6.com/forum.php

相關文章