Swift—使用try?和try!区别-备】的更多相关文章

在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try?  try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值. 示例代码如下: //查询所有数据方法 func findAll() throws -> [Note] { guard listData.count > 0 else { //抛出"没有数据"错误. t…
Swift中的类和结构体定义的语法是非常相似的.类使用class关键词定义类,使用struct关键词定义结构体,它们的语法格式如下: class 类名 { 定义类的成员 } struct 结构体名 { 定义结构体的成员 } 从语法格式上看,Swift中的类和结构体的定义更类似于Java语法,不需要像C++和Objective-C那样把接口部分和实现部分放到不同的文件中. 下面来看一个示例: class Employee {             //定义的类 var no: Int = 0 v…
程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要. 命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量,原则是:变量名=类型前缀+描述,如bFoo表示布尔类型变量,pFoo表示指针类型变量.匈牙利命名还是有一定争议的,在Swift编码规范中几本不采用匈牙利命名. 驼峰命名(Camel-Case),又称骆驼命名法,是指混合使用大小写字母来名字.驼峰命名又分为:小驼峰法和大驼峰法. 小驼峰法是第一个单词是全部小写,后面的单词首字母大写,如:myRoo…
构造函数的主要作用是初始化实例,其中包括:初始化存储属性和其它的初始化.在Rectangle类或结构体中,如果在构造函数中初始化存储属性width和height后,那么在定义他们时就不需要初始化了. Rectangle类代码如下: class Rectangle { var width: Double var height: Double init() { width   = 0.0 height  = 0.0 } } 如果存储属性在构造函数中没有初始化,在定义的时候也没有初始化,那么就会发生编…
String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换.但在实际开发中,我们该如何选择? 1,能使用String类型就尽量使用String类型,原因如下: (1)现在Cocoa里所有的API都能接受和返回String类型,所以也没必要特地转换下. (2)Swift的String是struct,而NSString类是NSObject,所以String更符合字符串“不变”这一特性.同时,在不触及NSString特有操作和动态特性的时候,使用String的方法,在性能上…
在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try?  try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值. 示例代码如下: //查询所有数据方法 func findAll() throws -> [Note] { guard listData.count > 0 else { //抛出"没有数据"错误. t…
本页包含内容: 初始化 可失败初始化 访问属性 方法 id 兼容性(id Compatibility) 空值和可选值 扩展(Extensions) 闭包(Closures) 比较对象 Swift 类型兼容性 动态分发 轻量级泛型 Objective-C 选择器(Selectors) 互用性是让 Swift 和 Objective-C 相接合的一种特性,使你能够在一种语言编写的文件中使用另一种语言.当你准备开始把 Swift 融入到你的开发流程中时,你应该懂得如何利用互用性来重新定义并提高你写 C…
1,AnyObject :代表任何class类型的对象实例. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Man{ }   class Woman{ }   let man = Man() let woman = Woman() var arr:[AnyObject] = [man,woman]   for people in arr {     if let m = people as? Man {         println("这是个男…
11.swift中的switch结构 区别一: oc中switch条件只可以放整数 swift中switch条件可以放几乎任何数据类型 区别二: oc中每一个case中应有break,如果没有break,则会继续向下贯穿执行case直到碰见break跳出switch结构 swift中不需要在case分支最后添加break语句,该case分支执行完成后,会跳出switch结构 区别三: oc中不是每个case后面必须有可执行语句,如果某个case分支中没有可执行语句和break,则该分支将会执行其…
iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这些语句后面一定要跟上大括号{},在C语言中不是必须的 说明:跟C语言对比,用法基本一样的有:for.while.do-while.if 因此,只需要关注for-in和switch即可 二.for-in结构 简单使用: for-in和范围运算符 for i in 1...3 { println(i)…