본문 바로가기

Smart Device/Swift42

Swift 상속(Inheritance) 상속(Inheritance)구조체, 열거형과 달리 클래스가 가진 특징 중 하나는 다른 클래스에 자신의 속성, 매서드를 상속 시킬 수 있다는 점이다. class Vehicle { var numberOfWheels: Int var maxPassengers: Int func description() -> String { return "\(numberOfWheels) wheels; up to \(maxPassengers) passengers" } init() { numberOfWheels = 0 maxPassengers = 1 }}let myVehicle = Vehicle() class Bicycle : Vehicle { override init() { super.init() numberOfWheels = 2 .. 2015. 6. 22.
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.