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

原创文章,欢迎转载。

转载请注明:关东升的博客

Swift错误处理模式,在Swift1.x和Swift 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_关东升。

关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 ?
很多其它精品iOS、Cocos、移动设计课程请关注智捷课堂官方站点:http://www.zhijieketang.com
智捷课堂论坛站点:http://51work6.com/forum.php

时间: 2024-10-05 23:58:09

《从零開始学Swift》学习笔记(Day 52)——Cocoa错误处理模式的相关文章

从零開始学Swift之Hello World进化版

上节课,也就是昨晚啦,我们学习到从零開始学Swift之Hello World.那一节仅仅有一句代码,大家会认为不够过瘾. 那么这节课,就给大家来多点瘾货吧! 先上图! //var 代表变量的类型, start 代表变量的名称. "Hello" 代表变量的值. var start = "Hello" var dot = " , " var end = "world!" // let 是什么意思呢? let total = sta

《从零開始学Swift》学习笔记(Day5)——我所知道的标识符和keyword

?? Swift 2.0学习笔记(Day5)--我所知道的标识符和keyword   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和keyword,一直没有好好的总结,就是这种用着,如今小小的整理一下Swift中的标识符和keyword. 什么是标识符呢? 标识符就是给变量.常量.方法.函数.枚举.结构体.类.协议等由开发者指定的名字. 事实上.构成标识符的字母是有一定规范的,Swift中命名规则是: 区分大写和小写.Myname与myname是两个不同的标识符: 标识

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

原创文章.欢迎转载.转载请注明:关东升的博客 前面说到Swift凝视的语法有两种:单行凝视(//)和多行凝视(/*...*/).这里来介绍一下他们的使用规范. 1.文件凝视 文件凝视就在每个文件开头加入凝视,文件凝视通常包含例如以下信息:版权信息.文件名称.所在模块.作者信息.历史版本号信息.文件内容和作用等. 以下看一个文件凝视的演示样例: /* Copyright (C) 2015 Eorient Inc. All Rights Reserved. See LICENSE.txt for t

《从零開始学Swift》学习笔记(Day60)——Core Foundation框架

创文章,欢迎转载.转载请注明:关东升的博客   Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.尽管在Swift中调用这样的C语言风格的API比較麻烦,可是在OS X和iOS开发过程中,有时候使用CoreFoundation框架的API是很方便的,比如在与C语言混合编码的时候. Core Foundation框架与Foundation框架紧密相关,他们具有与同样的接口,可是不同.Core Foundation框架是基于C语言

《从零開始学Swift》学习笔记(Day48)——类型检查与转换

原创文章,欢迎转载.转载请注明:关东升的博客 继承会发生在子类和父类之间,是一系列类的继承关系. 比如:Person是类层次结构中的根类.Student是Person的直接子类.Worker是Person的直接子类. 这个继承关系类的详细实现代码例如以下: class Person { var name: String var age: Int func description() -> String { return "\(name) 年龄是: \(age)" } conven

《从零開始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器

原创文章,欢迎转载.转载请注明:关东升的博客 实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,演示样例代码例如以下: button.addTarget(self, action: "onClick:", forControlEvents: UIControlEvents.TouchUpInside) 当中的action參数"onClick:"其实就是选择器(Selector). 问题提出 不论

《从零開始学Swift》学习笔记(Day 46)——下标重写

原创文章.欢迎转载.转载请注明:关东升的博客 下标是一种特殊属性. 子类属性重写是重写属性的getter和setter訪问器,对下标的重写也是重写下标的getter和setter訪问器. 以下看一个演示样例: class DoubleDimensionalArray { let rows: Int, columns: Int var grid: [Int] init(rows: Int, columns: Int) { self.rows = rows self.columns = column

《从零開始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式

原创文章,欢迎转载.转载请注明:关东升的博客 MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之中的一个,它最早出如今Smalltalk语言中. 如今,非常多计算机语言和架构都採用了MVC模式. MVC模式概述 MVC模式是一种复合设计模式,由 "观察者"(Observer)模式."策略"(Strategy)模式和"合成"(Composite)模式等组成.MVC模式由3个部分组成,如图所看到的,这3

《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹

<PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版)>源码.教学视频下载地址: http://pan.baidu.com/s/1zt9hW 内 容 简 介 本书循序渐进地介绍了PHP 5.5开发动态站点的主要知识和技能,提供了大量的PHP应用实例供读者实践.每一章节都清晰讲述了代码作用及其编写思路,使读者能在最短时间内迅速掌握PHP的应用开发技能. 全