Swift - AnyObject与Any的区别】的更多相关文章

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("这是个男…
在 Swift 中能够表示 “任意” 这个概念的除了Any .AnyObject以外,还有一个AnyClass. Any.AnyObject.AnyClass有什么区别: AnyObject是一个成员为空的协议,任何对象都实现了这个协议. Any是一个空协议集合的别名,它表示没有实现任何协议,因此它可以是任何类型,包括类实例与结构体实例. AnyClass是AnyObject.Type的别名而已. 1.AnyObject 本身就是一个接口,而且所有的class都隐式的实现了这个接口,这也限制了A…
在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try?  try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值. 示例代码如下: //查询所有数据方法 func findAll() throws -> [Note] { guard listData.count > 0 else { //抛出"没有数据"错误. t…
String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换.但在实际开发中,我们该如何选择? 1,能使用String类型就尽量使用String类型,原因如下: (1)现在Cocoa里所有的API都能接受和返回String类型,所以也没必要特地转换下. (2)Swift的String是struct,而NSString类是NSObject,所以String更符合字符串“不变”这一特性.同时,在不触及NSString特有操作和动态特性的时候,使用String的方法,在性能上…
声明几个类: //动物类 class Animal{ } //陆地动物类 class terricole: Animal { } //海洋动物类 class SeaAnimals: Animal { } 1,is 用来做类型检查 let cat = terricole() let fish = SeaAnimals() let arr = [cat,fish] for anima in arr { if anima is terricole{ print("这是陆地动物") }else…
在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try?  try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值. 示例代码如下: //查询所有数据方法 func findAll() throws -> [Note] { guard listData.count > 0 else { //抛出"没有数据"错误. t…
11.swift中的switch结构 区别一: oc中switch条件只可以放整数 swift中switch条件可以放几乎任何数据类型 区别二: oc中每一个case中应有break,如果没有break,则会继续向下贯穿执行case直到碰见break跳出switch结构 swift中不需要在case分支最后添加break语句,该case分支执行完成后,会跳出switch结构 区别三: oc中不是每个case后面必须有可执行语句,如果某个case分支中没有可执行语句和break,则该分支将会执行其…
SnapKit RxSwift R.swift https://www.jianshu.com/p/68e12b966d86 iOS - RxSwift 项目实战记录 https://blog.csdn.net/mazy_ma/article/details/73129745 swift3.0遇到的那些坑之NSClassFromString https://blog.csdn.net/hyc_springbrother/article/details/53008828#使用nsclassfrom…
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)…
swift ?和!之间区别: Swift 引入的最不一样的可能就是 Optional Value 了.在声明时,我们可以通过在类型后面加一个? 来将变量声明为 Optional 的.如果不是 Optional 的变量,那么它就必须有值.而如果没有值的话,我们使用 Optional 并且将它设置为 nil 来表示没有值. //num 不是一个 Int var num: Int? //num 没有值 num = nil //nil //num 有值 num = //{Some 3} Apple 在…