• 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变量会被赋值。

  • 相关阅读:
    第一个spring MVC
    AOP切点相关
    设计模式详解
    Spring基本原理模拟(IoC部分)
    AOP常用注解
    Integer.valueOf与Integer.parseInt的小疑惑
    IE10与IMG图片PNG显示不了 WP中的WebBrowser中无法查看PNG格式的图片
    去除Coding4Fun中MessagePrompt的边框(Border)
    windows phone 中的TextBlock的一些特性(TextWrapping,TextWrapping)
    九度 找出两个只出现了一次的数字
  • 原文地址:https://www.cnblogs.com/isItOk/p/5454237.html
Copyright © 2020-2023  润新知