如何在Swift中使用NSError

原创 2015年07月09日 17:33:14


步骤一:声明NSError变量。一定要加"?",不加或者加"!"都不行。因为使用了optional,所以要用var而不用let。

var error: NSError?

步骤二:使用的时候在变量前加上"&"。

NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers, error: &error)

之前遇到的坑是NSError使用的是"!",编译器老是说"Could not find member "MutableContainers",把我错误的引诱到其它地方。


在Objective-C中,方法接受NSError的类型是(NSError **),编译器接着把它转换成(NSError *__autoreleasing *)。

而在Swift中,方法接受NSError的类型是(NSErrorPointer),NSErrorPointer是AutoreleasingUnsafeMutablePointer<NSError?>的别名。(alias)

typealias NSErrorPointer = AutoreleasingUnsafeMutablePointer<NSError?>

AutoreleasingUnsafeMutablePointer<NSError?>其实是一个结构体。

下面是使用的一个简单的例子。

let jsonString = "[{\"name\":\"benson\",\"age\":25}]"

let data = jsonString.dataUsingEncoding(NSUTF8StringEncoding)

var error: NSError?

let jsonObject: AnyObject? = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers, error: &error)

if let error = error {
    
    println(error.localizedDescription)
}

println(jsonObject)

WWDC2015引进了Swift2.0,并宣称年底开源。其中新增的一个特性是Error Handling Model,我们可以使用do try catch来处理可能会抛错的方法。OC里许多包含有NSError参数的方法转换到Swift2.0后都没有了,反而方法会声明抛出错误(throws)。


相关文章推荐

解析 Swift 对 NSError 操作

其中基础部分借鉴了 WWDC 407 部分的介绍。

详解Swift中的错误处理

前言任何代码都会发生错误,这些错误有些是可以补救的,有些则只能让程序崩溃。良好的错误处理能够让你的代码健壮性提高,提高程序的稳定性。本文的Swift版本:Swift 3Objective C返回nil...

Model 转换成 nsdictionary

#import @interface PrintObject : NSObject //通过对象返回一个NSDictionary,键是属性名称,值是属性值。 + (NSDictio...

Swift 元组(Tuples)介绍

元组是Objective-C中没有的数据类型,与数组类似,都是表示一组数据的集合,但与数组不同,它的特点是: 元组的长度任意 元组中的数据可以是不同的数据类型...

iOS--NSError的自定义以及使用

NSError的应用在实际开发中也是经常会接触到的,这是我在做登录界面的时候,我希望输入框输入完成后即刻判断输入是否正确,如果输入错误需要显示错误信息。 也想过用一个block里边装个数组@[BOO...

NSError && NSException

NSError是非致命的,可恢复的错误。NSError 被捕获的问题是用户错误,通常可以通过错误信息中进行恢复,并且预期或可以预测的错误(如打开没有权限访问的文件)。 NSException是专为潜...

NSError

一、获取系统的错误信息 比如移动文件时,获取文件操作错误: NSError *e = nil;[[NSFileManager defaultManager] moveItemAtPath:...

NSError和NSException的几点说明

有关NSError和NSException基本用法的文章烂到满大街,本篇博文旨在避开常规方式,从几个要点理解NSError和NSException类。 1. 使用属性来访问本地化字符串信息而不是通...

Brief Intro to NSError of Foundation Framework

NSError The Foundation Framework NSError class is used to create error objects. The properties of ...

关于NSError

Foundation Constants Reference NSError Codes     NSError codes in the Cocoa error do...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在Swift中使用NSError
举报原因:
原因补充:

(最多只允许输入30个字)