《从零开始学Swift》学习笔记(Day 52)——Cocoa错误处理模式

原创文章,欢迎转载。转载请注明:关东升的博客

 

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

Swift 1.x代码错误处理模式采用Cocoa框架错误处理模式,到现在Objective-C还沿用这种处理模式,而Swift2.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_关东升
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 

更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php

 

 


http://www.niftyadmin.cn/n/1036409.html

相关文章

《从零开始学Swift》学习笔记(Day 53)——do-try-catch错误处理模式

原创文章,欢迎转载。转载请注明:关东升的博客 Swift 1.x的错误处理模式存在很多弊端,例如:为了在编程时候省事,给error参数传递一个nil,或者方法调用完成后不去判断error是否为nil…

《从零开始学Swift》学习笔记(Day54)——抛出错误

原创文章,欢迎转载。转载请注明:关东升的博客能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误。声明抛出错误方法示…

《从零开始学Swift》学习笔记(Day 55)——使用try?和try!区别

原创文章,欢迎转载。转载请注明:关东升的博客在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢?1.使用try? try?会将错误转换…

Windows命令行终端配置

配置Windows命令行背景 你的命令行是这样的??? 或者是这样的??? 是不是看着背景太单调了??? 那你再看看我的: 话不多说,直接干!&…

《从零开始学Swift》学习笔记(Day 56)—— Swift编码规范之命名规范

原创文章,欢迎转载。转载请注明:关东升的博客程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要。命名方法很多,但是比较有名的,广泛接受命名法有:匈牙利命名,一般只是命…

【MySQL数据库系列】一、认识数据库、建库建表操作

文章目录一、初识数据库二、MySQL基本数据类型三、MySQL基本逻辑运算符四、“数据库”的基本操作五、“表”的基本操作一、初识数据库 数据库:能更有效的管理数据,数据库可以提供远程服务,也就是说可以通过远程连接来使用数据库,…

《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释

原创文章,欢迎转载。转载请注明:关东升的博客前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/)。这里来介绍一下他们的使用规范。 1、文件注释文件注释就在每一个文件开头添加注…

【MySQL数据库系列】二、MySQL数据库增删改查(聚合查询、多表查询)

上次我们讲了数据库的创建和删除,还有一些没讲完的限制,本文我们就一起讲了,然后开始讲数据库的增删改查操作,涉及到基本的增删改查和聚合查询、多表查询等。都算是比较难的知识点,多敲敲代码。 前期文章:…