- Swift中峡眶,不需要分號(hào),在其他語(yǔ)言中植锉,一個(gè)辫樱;表示一句指令的結(jié)束
如果多個(gè)語(yǔ)句并列,可以使用分號(hào)- OC中俊庇,alloc/init對(duì)應(yīng)在()狮暑,構(gòu)造函數(shù),創(chuàng)建并且初始化對(duì)象
- OC中辉饱,alloc/initWithXXX對(duì)應(yīng)Swift中(XXX:)
- OC中搬男,[UIColor redColor]類函數(shù),在Swift中直接用點(diǎn).
- 枚舉類型UIButtonTypeContactAdd彭沼,Switf中分開寫UIButtonType.ContactAdd(熱鍵:
回車 - → - 點(diǎn))缔逛,直接點(diǎn)很多時(shí)候沒有提示 - print 類似于 OC 的NSLog,但是效率更高
- 添加監(jiān)聽方法姓惑,直接用"方法名"褐奴,如果有參數(shù)在方法名后加冒號(hào)"方法名:"
- Swift中谦炬,可以省略self. 两踏,加上也可以,最好不要加(閉包中必須要self.)
override func viewDidLoad() {
super.viewDidLoad()
let a = 10; let b = 20
print(a + b)
// 創(chuàng)建一個(gè)視圖并且指定一個(gè)位置
let v = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
// 背景顏色
v.backgroundColor = UIColor.magentaColor()
view.addSubview(v);
// 創(chuàng)建按鈕
let btn = UIButton(type: UIButtonType.ContactAdd)
btn.center = view.center;
btn.addTarget(self, action: "click:", forControlEvents: .TouchUpInside)
view.addSubview(btn);
}
func click(sender:UIButton) {
print("點(diǎn)我了 \(sender)")
}
- let 定義常量 - 一旦設(shè)置數(shù)值桑寨,不允許修改
var 定義變量 - 可以修改
如何選擇唯沮?
盡量用let脖旱,必須要修改的時(shí)候堪遂,再用var
不變的是比較好控制的,這樣程序更安全更可控
- 自動(dòng)推導(dǎo):會(huì)根據(jù)設(shè)置數(shù)值的右側(cè)代碼萌庆,推斷變量/常量的類型
但是在Swift中溶褪,任何時(shí)候都不會(huì)做隱式轉(zhuǎn)換
任何兩個(gè)類型不同的變量或常量不允許直接計(jì)算! - Swift是一個(gè)類型要求異常嚴(yán)格的語(yǔ)言
func demo2() {
// Int -> 64位整數(shù) long
let y = 1.5
// Double -> 小數(shù)默認(rèn)為Double踊兜,雙精度小數(shù)竿滨,OC中使用CGFloat浮點(diǎn)數(shù)比較多,Double精度更高
let r1 = x + Int(y)
print(r1)
let r2 = Double(x) + y
print(r2)
// 定義變量或者常量如果需要指定類型
// 冒號(hào)+類型的方式指定準(zhǔn)確類型
let z: Double = 20
print(z + 1.5)
}
func demo() {
//
let x = 20
// x = 30
var y = 80
y = 30
print(x + y)
// 視圖實(shí)例化之后捏境,并沒有修改指針的地址
let v = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
// 只是在修改屬性于游,并沒有改變v本身的地址
v.backgroundColor = UIColor.blackColor()
}
- 可選項(xiàng):一個(gè)變量,可以為本身的類型垫言,也可以為nil
func demo3() {
// 可選項(xiàng):使用問號(hào)贰剥?定義
// y可以是一個(gè)整數(shù),也可以是nil筷频,如果是變量蚌成,默認(rèn)值是nil
// 注意:可選項(xiàng)在輸出的時(shí)候會(huì)提示'Optional'可選的
var y: Int? = 10
print(y)
// * 可選項(xiàng)不能直接計(jì)算
// ! - 強(qiáng)行解包(unwrapping) - 注意:程序員承諾凛捏,y一定有值担忧,如果沒有,崩給我看
// 常見錯(cuò)誤:unexpectedly found nil while unwrapping an Optional value
// 每次寫坯癣!的時(shí)候,都需要程序員思考示罗,是不是有可能為nil
print(y! + 20)
}
func demo4() {
let urlString = "http//:www.baidu.com" // /中文"
// 注意:構(gòu)造函數(shù)如果有'?'表示不一定能創(chuàng)建出對(duì)象(地址后加中文就會(huì)為nil)
let url = NSURL(string: urlString)
print(url)
// 注意:如果參數(shù)中沒有'?'表示必須要有值惩猫,如果為nil,就會(huì)崩潰
if url != nil {
let request = NSURLRequest(URL: url!)
print(request)
}
}
*提示*:可選項(xiàng)是所有OC程序員剛接觸Swift的時(shí)候最頭疼的問題
1. 明確可選項(xiàng)的概念:考慮如果沒有值怎么辦
2. 實(shí)際開發(fā)中蚜点,借助Xcode智能提示轧房,幫助修改
3. 每次修改都要思考為什么!