• Swift—Cocoa错误处理模式-备


    Swift错误处理模式,在Swift1.x和Swift 2.0是不同的两种模式。

    Swift 1.x代码错误处理模式采用Cocoa框架错误处理模式,到现在Objective-C还沿用这种处理模式,而Swift2.0之后采用了do-try-catch错误处理模式。

    下面的示例代码是从文件中读取字符串到内存中,如果使用Swift 1.x错误处理模式代码如下:

     

     
    1. import Foundation  
    2.   
    3.    
    4.   
    5. var err: NSError?        //定义可选的NSError?变量  
    6.   
    7.    
    8.   
    9. let contents = NSString(contentsOfFile: filePath,   
    10.   
    11.             Ê encoding: NSUTF8StringEncoding, error: &err)  
    12.   
    13.    
    14.   
    15. if err != nil {      //判断err变量是否还是nil  
    16.   
    17.     // 错误处理  
    18.   
    19. }  

    NSError?一定是可选的变量,因为要给它初始化为nil。

    判断err变量是否还是nil,如果还是nil在代码

     

     
    1. let contents = NSString(contentsOfFile: filePath,   
    2.   
    3.                     Ê encoding: NSUTF8StringEncoding, error: &err)  

    方法调用过程中没有发生错误,否则说明有错误发生。

    上述代码的构造函数,它的Swift语法定义如下:

     

     
    1. init?(contentsOfURL url: NSURL,  
    2.   
    3.          encoding enc: UInt,  
    4.   
    5.             error error: NSErrorPointer)  

    构造函数的最后一个参数是NSErrorPointer(即NSError指针),那么在实际调用时候我们需要传递err变量地址(即&err),&是取地址符。当方法调用完成后,如果有错误则err变量会被赋值。

  • 相关阅读:
    C语言版本:单链表的实现(优化版本)
    C语言版本:单链表的实现
    C语言版本:顺序表的实现
    C++:多态浅析
    C++:同名隐藏和赋值兼容规则
    C++:钻石继承与虚继承
    C++:派生类的构造函数和析构函数的调用顺序
    Docker安装和使用
    Node10.15.0的安装
    碎碎叨叨
  • 原文地址:https://www.cnblogs.com/isItOk/p/5454237.html
Copyright © 2020-2023  润新知