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

原創文章,歡迎轉載。轉載請註明:關東昇的博客 php

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在代碼url

let contents = NSString(contentsOfFile: filePath,

                    Ê encoding: NSUTF8StringEncoding, error: &err)

 

方法調用過程當中沒有發生錯誤,不然說明有錯誤發生。spa

上述代碼的構造函數,它的Swift語法定義以下:設計

init?(contentsOfURL url: NSURL,

         encoding enc: UInt,

            error error: NSErrorPointer)

 

構造函數的最後一個參數是NSErrorPointer(即NSError指針),那麼在實際調用時候咱們須要傳遞err變量地址(即&err),&是取地址符。當方法調用完成後,若是有錯誤則err變量會被賦值。指針

 

歡迎關注關東昇新浪微博@tony_關東昇。
關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
                          ​
更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.phpcode

相關文章
相關標籤/搜索