Difference between revisions of "IOS Swift"
From Hawk Wiki
(Created page with "<pre brush:c> swift note: Basic Var var languageName: String = "Swift" Constant let version: Double = 1.0 :Int, :Bool let components = "~/Documents/Swift".pathComponents ["~", "...") |
(No difference)
|
Revision as of 19:46, 26 January 2015
swift note: Basic Var var languageName: String = "Swift" Constant let version: Double = 1.0 :Int, :Bool let components = "~/Documents/Swift".pathComponents ["~", "Documents", "Swift"] let a = 3, b = 5 let res = "\(a) times \(b) is \(a * b)" let dog = "dog" var dog1 = dog + "1" let a: Character = "a" let b: Character = "b" let ab = a + b Array var names = ["Anna", "Alex", 42] var names: String[] = ["Anna", "Alex"] var numOfLegs = ["ant": 6, "snake": 0] for x in names { } for number in 1...5 { } for num in 0..<5 { //half close range } for (name, legs) in numOfLegs { } names += "Sam" names += ["Hao", "Dan"] names[0] = "x" names[3...5] = ["x", "y", "z"] numOfLegs["spider"] = 273 numOfLegs["spider"] = 8 Optionals let possibleLegs: Int? = numOfLegs["aardvark"] //either get integer or nothing if possibleLegs == nil { } else { let legCount = possibleLegs! //forcing optional value to it's type } //A Simpler way if let legCount = possibleLegs { } Switch legCount { case 0: //no break case 1: case ExecButton: //match object case 1...5: case 2,4,6,8: default: //required } func sayHello(name:String = "default") { //give a default value } Tuples (404, "Not found") (2, "Banana", 0.42) let (statusCode, message) = refresh() Closures func repeat(count: Int, task: () -> ()) { for i in 0..<count { task() } } repeat(2, { println("hello") }) repeat(2) { println("hello") } Class class Vehicle { var numOfWheels = 0 //stored properties var description: String { //computed properties, has to be var get { //get is optional return "\(numOfWheels) wheels" } } } let someVehicle = Vehicle() //Auto alloc //inheritance class Bicycle: Vehicle { init() { //initializer super:init() numOfWheels = 2 } override var speed: Double { willSet { if newValue > 65.0 { println('warning too fast') } } didSet { //oldValue available } } } struct Rect { var origin: Point var size: Size var area: Double { return size.width * size.height } func isBiggerThanRect(other: Rect) => Bool { return self.area > other.area } } struct and class 1. struct cannot inherite 2. class is passed by reference. struct is passed by value Constant and Variables let window = Window(1.0, 1.0) //The reference is a constant, cannot change the reference value can do window.x = 1.0 cannot do window = Window(2.0, 2.0) var point1 = Point(x: 0.0, y: 0.0) //Point is struct. can do point1.x = 1.0 let point2 = Point(x: 0.0, y: 0.0) // cannot do point2.x = 1.0