class StepCounter { var totalSteps: Int = 0 { willSet { println("About to set totalSteps to \(newValue)") } didSet { if totalSteps > oldValue { println("Added \(totalSteps - oldValue) steps") } } } } let stepCounter = StepCounter() stepCounter.totalSteps = 200 // About to set totalSteps to 200 // Added 200 steps stepCounter.totalSteps = 360 // About to set totalSteps to 360 // Added 160 steps st..
struct Point { var x = 0.0, y = 0.0 } struct Size { var width = 0.0, height = 0.0 } struct Rect { var origin = Point() var size = Size() var center : Point { get { let centerX = origin.x + (size.width / 2) let centerY = origin.y + (size.height / 2) println("get 속성이 호출되었습니다") return Point(x:centerX, y:centerY) } set { origin.x = newValue.x - (size.width / 2) origin.y = newValue.y - (size.height /..
기본적인 선언 형태 enum My_Enum : Int { case JAN case FEB case MAR } var enumValue : My_Enum = My_Enum.MAR switch(enumValue) { case .JAN: println(enumValue.rawValue) case .FEB: println(enumValue.rawValue) default: println(enumValue.rawValue) } 아래와 같이 이전처럼 값을 지정할 수도 있다. enum My_Enum2 : Int { case A = 41 case B case C case D } 위와 같은 형태가 이전에 쓰이던 형태라면 아래와 같은 경우도 가능하다 enum My_Enum3 : String { case A = "1" ca..
이제 드디어 Closure ㅠ_ㅠ Swift 라고 해서 새로운 언어가 나왔지만 언어가 새롭다고 해서 기존의 개념이 바뀐건 아니다 함수형 언어라고는 하나 이러한 개념들은 60년대에 이미 논의가 되었더란다(-_-;) 그게 중요한게 아니고... 이렇기 때문에 새로나왔다고 해서 새로운 개념이 막막 나오고 그런건 아니다 Closure 라는 용어는 생소해도 Objective-C 에서 주구장창 써대던 Block 코딩이라고 생각하면 편하다 여기저기서 Closure 의 예제로 가장 만만하게 쓰이는 sorted 의 코드로 보면 이해하기 편하다 var intArray : [Int] = [1,2,5,4,6,3] var sortedArray : [Int] = sorted(intArray, { (t1 : Int, t2 : Int..
드디어 함수 일단의 기본개념 격인 C와 별다를바 없는데서 시작한다 기본적으로(코드 하이트 찾아서 적용해봄 으아;;) func funcName(Parameter:Int) -> (Int) { return Parameter+10 } var myValue = funcName(20) 위와 같이 함수이름과 파라미터와 리턴형을 정의해서 사용할 수 있다 몇가지 더 다양한 형태로 func myFunc(IntName x:Int, IntName2 y:Int) -> (Int) { return x+y } var myValue = myFunc(IntName: 10, IntName2: 10) 이런식으로 외부에서 받을 이름과 내부에서 쓰일 이름을 달리 가져갈 수도 있고 func myFunc(#x:Int, #y:Int) -> (Int..