Difference between revisions of "IOS Swift"

From Hawk Wiki
Jump to: navigation, search
(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 ["~", "...")
 
(Replaced content with "Swift Introduction")
Line 1: Line 1:
<pre brush:c>
+
[[Swift Introduction|Swift Introduction]]
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
+
 
+
</pre>
+

Revision as of 19:48, 26 January 2015

Swift Introduction