最近開發完OC的項目,開始搞Swift ,2016年從開發OSX應用 到OC應用 再回歸到Swift,回頭看已經到Swift3.0了。以前在開發Swift的時候還在1.2 到2.0的切換中。swift
下面給本身總結一下變化:ide
1. 監聽方法: swift 3.0 -> #selector 若是帶參數,不須要使用「:」 swift2.0 -> "" OC -> @selector eg: button.addTarget(self, action: #selector(click), for: .touchUpInside)
2. OC -> __FUNCTION__ swift3.0 -> #function
3. swift3.0 -> 設置color 能夠直接 color 以後回車,選擇須要的顏色,或者修改顏色。 顯示以下: 本質代碼以下: eg: testView.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
4.Swift3.0 將大量的Class 轉化爲Struct,不存在基本類型,都是結構體。
eg:public struct Double {
5. 可選項:Optional 變量能夠有指定類型的值,也能夠是nil, nil 不是任何數據類型,不能參與計算。 ! 強行解包。 從可選之中強行獲取對應的非空值,若是值爲nil ,就會奔潰。 var 的可選值 默認爲nil let 的可選值 沒有默認值
6. ?? 是個三目運算 若是有值,使用值 若是沒有值,使用?? 後面的值替代
/****** 7. Switch 1.能夠針對任意類型的值進行分支,再也不侷限於整數。 2.switch 通常不須要 break 3.switch 若是要多值,使用「,」
4.全部的分支至少須要一條指令,若是什麼都沒有操做,使用break
5.case 條件中能夠使用where 語句 ***/ func demoSwitch1(str: String) -> String { switch str { case "demo": print(str) return str case "ceshi","Ceishi": print(str) return str case "ni": print(str) return str case "hao": print(str) return str default: print("沒有匹配到值") return "沒有匹配到值" } }
/** 8. For 循環 1.傳統的for 循環,在swift3.0中被取消 2.i++ ++i從swift3.0被取消 使用i += 1 3.在使用過程當中要注意空格的使用。 4.for 循環 反轉使用reversed() **/ func forDemo1() { for i in 0..<10 { print(i) } print("------------") for i in 0...10 { print(i) } //for 循環 反轉 for j in (10...30).reversed() { print(j) } }
/** 9. 字符串 1. 長度lengthOfBytes() 方法,返回的是字節數量。UTF8中,每一個漢字是3個字節。 2. .characters.count 返回字符的個數。 3. 使用NSSting 中轉得到長度 **/ func demoStr1(str: String) { let string = "測試String的 循環遍歷" print(string.lengthOfBytes(using: .utf8)) //28 print("字符的個數是:",string.characters.count) //14 for c in string.characters { print("****",c) } print((string as NSString).length) //14 }