一些Swift小知識點的整理,Swift知識點整理
之前最開始瞭解Swift的時候的一些基本的東西,簡單的整理一下。
import UIKitvar names = []class ViewController: UIViewController,UIAlertViewDelegate { override func viewDidLoad() { super.viewDidLoad() var stringValue:String!// stringValue = "chw"// let str11 = stringValue.hashValue// var stringValue:Optional<String> if let str = stringValue { let hashValue = str.hashValue } let str1 = "swift" for k in str1 { println(k) } var dic = [0:0, 1:0, 2:0] var newDic = dic //Check dic and newDic dic[0] = 1 println(dic) //[0: 1, 1: 0, 2: 0] println(newDic)//[0: 0, 1: 0, 2: 0] var arr11:Array = [0,"lll",0] var newArr = arr11 arr11[0] = 1 //Check arr and newArr println(arr11) //[1, 0, 0] println(newArr) //[0, 0, 0]// 字串 let heart = "️" println(heart)//️ //Null 字元串 let empty = "" let anotherEmpty = String() if empty.isEmpty { println(" empty ") } else { println(" not empty ") } //首碼尾碼 let str11 = "chengHong wei" if str11.hasPrefix("ch") { println("prefix is ch") } if str11.hasSuffix("wei") { println("suffix is wei") } //大小寫 let up = str11.uppercaseString println(up)//CHENGHONG WEI let low = str11.lowercaseString println(low)//chenghong wei// 可選值探究 var input:String? var input1 = "18" var age = input1.toInt() if age != nil{ println("your age is " + String(age!)) } else { println("error for input") }// 遍曆數組 let arr = ["1","2","3"]// ...相當於[0,2]一個區間,意思就是 0=< i && i<= 2 for i in 1...arr.count { println("arr count is \(arr.count)") println("arr object index \(arr[i-1])") }// ..<是半閉半開區間,意思就是[0,arr.count) (之前是..,現在已經改了) for i in 0..<arr.count { println(i) } for var i=0;i<3;i++ { println("\(arr)") }// array加元素 var arr1 = ["a"] arr1 += ["b"] arr1 += ["c","d","e"] println(arr1) println("arr1 is \(arr1)") arr1[0] = "f" println(arr1) var arr20 = [1,2,3,4] arr20[0] = 0 arr20[1...1] = [5,8]//在array[1]這兒插入了5,8兩個元素,這個功能僅在區間狀態有效,如果a[3] = [5,8] 則會報錯 println(arr20) //[0,5,8,3,4]// 泛型是如何用來定義容器的儲存的。還有一個數組的縮寫形式,這個更具有可讀性,但本質上是一樣的。現在你不能往數組裡面添加非Int型的元素。這聽起來挺糟糕,但它非常有用。再也不需要用API來記錄數組裡儲存了哪些從某個方法返回或者以屬性儲存區的元素。你可以告訴編譯器這些資訊,編譯器在錯誤檢查方面會更加智能,並且可以提早做出最佳化。 let arr2: [Int] = [1,2,3,4] //數組裡面只能是int型 let arr3: [Float] = [1,2,2.3] println("arr3 is \(arr3)") let arr4: [String] = ["1","chw","love"] println("arr4 is \(arr4)")// var 可變的數組是可以加元素的,let 聲明的是不可加的,也就是可變與不可變數組的意思,在 Objective-C 和 Cocoa 中,您通過選擇兩個不同的類( NSString 和 NSMutableString )來指定該字串是否可以被修改,Swift中的字串是否可以修改僅通過定義的是變數還是常量來決定,實現了多種類型可變性操作的統一。 var arr5:Array = [1,2,3,"cheng"] arr5.append("chw") println("arr5 is \(arr5)")// 字典 let dic11 = ["name":"chw","sex":1,"height":175.0] println("This is a dictionary \(dic11)")// Swift的=是沒有傳回值的 var a1 = 5 var a2 = 5 if a1 == a2 { println("===") } else {// println("!==") }// 字串拼接 let cheng = "c" let hong = "h" let wei = "w" let chenghongwei = cheng + hong + wei println("my name is \(chenghongwei)")// 取餘 println(8%3) // = 2 println(8%2.5) // 8 % 2.5 = 8 - 2.5 * 3 = 0.5 小數也是可以取餘的// swith語句 var i = 14 switch i { case 0...10: println("range is 0-10") case 11...20: println("range is 11-20") case 21..<30: println("range is [21-30)") default: break } var name = "chw" switch name { case "cheng": println("name is cheng") case "hong": println("name is hong") case "wei": println("name is wei") default: println("someone else") break }// 閉包初探 names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"] func backwards(s1:String,s2:String)->Bool { return s1>s2 }// UI控制項 let lab = UILabel(frame: CGRectMake(100, 100, 200, 100)) lab.text = "Hello Chw" lab.backgroundColor = UIColor.greenColor() lab.textAlignment = NSTextAlignment.Center self.view.addSubview(lab) let btn = UIButton(frame: CGRect(origin: CGPointMake(100,250), size: CGSizeMake(100,50))) btn.backgroundColor = UIColor.grayColor() btn.setTitle("Chw btn", forState: UIControlState.Normal) btn.addTarget(self, action: "btnClick:", forControlEvents: UIControlEvents.TouchUpInside) self.view.addSubview(btn)} //TODO:--- func btnClick(sender:UIButton!){ println("chw 111") var alert = UIAlertView() alert.title = "CHW" alert.delegate = self alert.message = " This is a alert !" alert.addButtonWithTitle("Cancle") alert.addButtonWithTitle("OK") alert.show() }//MARK:-//MARK:--- AlertViewdelegate func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int){ println("buttonIndex:\(buttonIndex)") if buttonIndex == 0 { println("Cancle Btn !") } else if buttonIndex == 1 { println("Sure Btn") } }//MARK:- override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}