Smart Device59 Swift Property Observer - Property Observer 속성값의 변화가 발생할 때 원하는 액션을 취할 수 있는 기능을 제공한다. 이 기능을 Property Observer라고 한다. * willSet : 속성의 값이 저장되기 직전에 호출된다. * didSet : 속성의 값이 변경된 직후에 호출된다.class StepCounter { var totalSteps: Int = 0 { willSet(newTotalSteps) { println("[willSet] 호출, 새로운 값: \(newTotalSteps)") } didSet { println("[didSet] 호출") if totalSteps > oldValue { println("Added \(totalSteps - oldValue) steps") } } } } let s.. 2015. 6. 9. Swift mutating - mutating 기본적으로 값 타입의 경우는 인스턴스가 생성되고 나서, 인스턴스 매서드에서 해당 인스턴스의 속성을 변경 할 수 없도록 되어 있다. 그러나 값 타입의 경우라고 하더라도 인스턴스 매서드를 사용하여 구조체와 열거형의 속성을 변경할 필요가 있는 경우가 발생한다. 이 경우에 mutating이라는 키워드를 사용하면 된다. struct Point { var x = 0.0, y = 0.0 mutating func moveByX(deltaX: Double, y deltaY: Double) { x += deltaX y += deltaY } } var somePoint = Point(x: 1.0, y:1.0) somePoint.moveByX(2.0, y: 3.0) 결과 {x 3, y 4} 2015. 6. 9. Swift 함수 #10 Function Type Function Type함수의 이름을 빼고 파라미터로 사용하는 자료형과 리턴값의 자료형만으로 구성된 표현을 의미한다. (자료형, 자료형, 자료형) -> 자료형 : 세개의 파라미터를 받아서 하나의 리턴값을 리턴하는 함수라는 의미 -func swapTwoInts(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA}의 Function Type(함수 타입)은 다음과 같다.(Int, Int) -> () : 리턴값이 없는 경우에는 ()를 사용한다. -func join(string s1: String, toString s2: String, withJoiner joiner: String) -> String { return s1 + s2 + joi.. 2015. 6. 2. Swift 함수 #9 In-Out 파라미터 In-Out 파라미터 함수에 파라미터로 넘기는 값을 변경할 수 있는 기능을 제공한다. - 함수를 정의할 때 파라미터 앞에 inout이라는 키워드를 붙인다. - 함수를 호출할 때 파라미터 앞에 & 기호를 사용한다. 예제) func swapTwoInts(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA } var aInt = 100 var bInt = 200 println("변수 a의 값은 \(aInt)이고, 변수 bInt의 값은 \(bInt)이다.") //--> 변수 a의 값은 100이고, 변수 bInt의 값은 200이다. swapTwoInts(&aInt, &bInt) println("변수 a의 값은 \(aInt)이고, 변수 bIn.. 2015. 6. 2. 이전 1 ··· 4 5 6 7 8 9 10 ··· 15 다음