Swift-分支
2015-08-18 23:28
375 查看
//: Playground - noun: a place where people can play import UIKit /** if 在 C 语言中有一个特点:非零即真 if (_dataList == nil) { } * 在 swift 中,没有非零即真的概念!只有 true/false * 在编写分支语句是,必须准确的指定条件的真假 */ let i = 10 /** 1> 条件不需要括号 2> 必须要有 {} * 使用 swift 开发,要写出优雅的代码,非常有挑战 */ if i > 5 { println("hello") } // 实际应用 // convenience init?() 表示这个方法未必能够真的实例化出来一个对象 // 在 oc 开发中,由于语法要求不严格,程序员通畅不考虑这些问题 // 这些问题,都留着到崩溃的时候 // 在 swift 中,要求在编写代码的时候,就必须考虑这些问题 // 能够尽早地发现错误! let url = NSURL(string: "http://www.baidu.com/s?word=he") if url != nil { // NSURLRequest(URL: url 必须要有值 let request = NSURLRequest(URL: url!) } // 但是,如果要判断的条件很多,会让代码很难看! // swift 的设计者提供了一个解决方案 // 使用 if 同时设置数值,这个技巧,在 swift 中,使用非常广 if let url = NSURL(string: "http://www.baidu.com/s?word=he") { // 代码执行到此,url 就一定有值,所以不需要再使用 `!` let request = NSURLRequest(URL: url) } // 实际的应用技巧 // ? 表示 可以有值(NSString),也可以没有值(nil) // ? 如果对象为空,就不会调用后面的方法,感觉上和 oc 中给 nil 发送消息类似 // 本质上不一样,如果对象是 空,就不调用后面的方法 // 提示:初学者,很多人对 ? ! 非常苦恼!可以借助 Xcode 智能提示辅助 // 刀哥提示:每次的 ? ! 都思索一下,用不来多久就会习惯! var str: NSString? str = "hello" // 打印可选项的时候,同时会输出一个 Optional,提示开发者,这是一个可选项 println(str?.length) //println(str!.length) let l = 10 // 目前的代码存在什么风险?如果 str 没有设置初始值,会直接崩溃 // 苹果把判断对象是否有内容的工作交给了程序员 //let len = l + str!.length // 隆重推荐:?? 用来快速判断对象是否为 nil let len2 = l + (str?.length ?? 0) // 以下代码和上面的代码等效 if str != nil { let len3 = l + str!.length } // ?? 的应用场景最多的就在tableView 的数据源方法 var array: [String]? // 追加一项内容 array = ["hello", "world"] println(array?.count ?? 0)
相关文章推荐
- 慕课玩儿转swift笔记02-字符串
- IOS autolayout自动布局实例(swift)
- 《转》OpenStack对象存储——Swift
- Swift初学有一点难理解的东西,整理了一下,想明白了。
- iOS开发系列--Swift语言
- swift学习1
- SWIFT缩写
- 《The Swift Programming Language》原版中的问题汇总
- Swift-Optional(可选类型?!)
- Swift-初学
- iOS 自定义UITabbarController中的item (swift)
- 最近正在参与的Swift2.0翻译工作(Access Control章节)
- Swift 2.0学习笔记(Day 1)——我的第一行Swift代码
- Swift_3_功能
- swift中使用CocoaPods
- 窥探Swift之别样的枚举类型
- iOS 实现脉冲雷达以及动态增减元素 By Swift
- swift爬行篇 滑块,进度条,步进,
- IOS-笔记5 (swift和OC,View大小和位置)
- 【IOS学习笔记】Swift iOS 日期操作:NSDate、NSDateFormatter(转载)