一.Swift中的常量和变量
/* Swift 中定义常量和变量用let/var let 代表定义一个常量 var 代表定义一个变量 Swift 中代表定义常量和变量不需要写数据类型,编译器辉根据我们后面数据的真实类型自动推导 Swift开发技巧:在做Swift开发中,我们需要经常使用option + click键来查看方法或变量 **/ //常量 let num = 10.1 //num = 9.0 //常量不能修改 //变量 //注意点: Swift开发中每一条语句后面可以不写分号,但是写上也不会报错 // 如果同一行多条语句,那么每天语句后面必须写上分号 var value = 10 value = 11 //相当于OC中的NSLog print(value)
二.Swift中的数据类型
/* Swift中不存在隐式类型转换,所有的类型转换都必须是显示的 */ let num1 = 10 let num2 = 9.9 let iSum = num1 + Int(num2) let dsum = Double(num1)+num2 //Swift是强语言/OC是弱语言 //let num3: Int = 10.1 //报错 let num3:Int = 10 let num4:Int = Int(10.1)
三.Swift中的分支
/* Swift中的if使用方式 基本上 和OC一样 1.Swift中的if可以省略() 2.Swift中哪怕if后面只有一条语句,也不能省略{} 3.在C和OC中,有一个概念非0即真 在Swift中,条件只能放bool值,去值只有两个true/false */ let num5 = 10 if(num5 == 10){ print("OK") } if num5 == 10 { print("OK") } /* Swift中的switch 1.后面的()可以省略 2.OC中的switch如果没有break会穿透,但是OC中不会,Swift不会穿透 3.OC中如果要再case中同定义变量,必须加上{}确定作用域,而swift中不用 4.OC中的default的位置可以随便写,只有所有case都不满足才会执行default 而swift中的default只能放在最后 5.OC中的default可以省略,Swift中"大部分"情况下不能省略 */ switch (num5){ case 1: print("1") break case 2: print("2") break case 10: print("10") break default: print("other") break }
//Swift中的循环 /* 普通的for循环 和OC基本一致 */ //0~9 for var i = 0; i < 10; i++ { print(i) } //Swift特色循环 //0..<10 代表一个区间范围,从0开始到9 包含头不包含尾 for i in 0..<10 { print(i) } // _ 代表忽略,如果不关心某个参数,就可以使用_ //在Swift中, _ 使用频率非常高 for _ in 0..<10 { print("lnj") } //0...10 代表一个区间范围, 从0开始到10结束 包含头又包含尾 for i in 0...10 { print(i) } /* Swift的while循环和OC中差不多,而且在开发中很少使用while */ var a = 0 while a < 10 { print(a) a++ } /* Swift升级到2.0后, do while循环发生了极大的变化 do while 没有do了 因为do被用作捕获异常了 */ var b = 0 repeat{ print(b) b++ }while b<10
let num6 = 10 if num6 == 5 { print("5") } else { print("10") } /* 在OC中 if else 可以使用三目运算符来简写 注意:在做Swift开发中三目运算符用得非常多 */ let res = (num6 == 5) ? 5 : 10 print(res) /* 可选类型:代表着可以有也可以没有 optional convenience init? 以后单反看到一个方法或者数据类型后面有?,就代表返回的是一个可选类型 使用可选类型需要注意,如果直接打印可选类型,那么打印出来的值会被Optional包裹 ! 代表告诉编译器,可选类型中一定有值,强制解析 如果可选类型中没有值,而又进行了强制解析,那么程序就会崩溃 */ let url = NSURL(string: "http://baidu.com") print(url) print(url!) let url2 = NSURL(string: "http://baidu.com/图片") print(url2) //Swift的用意就是让我们将大部分运行时的错误,都再编译时解决 //let request=NSURLRequest(URL:url!) if url != nil { let request = NSURLRequest(URL: url!) } //可选绑定 //会将url的值取出来赋值给urlFinal变量,如果值不为nil,那么就可以进入{} if let urlfinal = url{ let request = NSURLRequest(URL: urlfinal) }