기술 관련/Apple Swift
-
Swift - Closures기술 관련/Apple Swift 2014. 8. 12. 11:21
Closures 클로져는 사용자 코드에서 다른 코드나 함수로 전달 될 수도 있고, 또 그 자체가 사용되어 질 수 있는 기능에 대한 자립적인 블럭을 말한다.또한, 클로저에는 클로저가 정의된 곳의 context로 부터 상수나 변수에 대한 reference를 수집(capture)하거나 저장(store) 가능한데 이를 두고 변수나 상수를 closing한다라는 표현을 사용하기에 closures라는 이름으로 불린다. reference capturing 에 대한 부분은 별도로 설명하고 있으나 간략하게 정리하면, 클로저가 해당 변수나 상수를 지속적으로 참고하고 있으며, 변수일 경우 해당 정보의 변경에 대한 정보를 지속적으로 얻을 수 있는 것을 말한다. Global 함수와 nested 함수가 closure에 대한 특별한..
-
Swift - Function기술 관련/Apple Swift 2014. 8. 11. 17:00
Defining and Calling Functions기본적인 함수 정의는 다음과 같다func 함수이름 ( 인자 정보 ) -> 리턴타입인자 정보는 이름:타입 형태를 따른다func test (param1: String) -> String정의된 함수의 호출은 다음과 같다test("Hello") Function Parameters and Return ValuesMultiple Input Parameters인자 정보에 comma 문자 (',')를 이용하여 여러 인자를 입력 받을 수 있다func test (param1: String, param2: Int) -> String해당 함수에 대한 호출은 다음과 같다test("Hello", 100)Functions Without Parameters다음과 같이 인자 정보를..
-
Swift - Control Flow기술 관련/Apple Swift 2014. 8. 11. 15:19
For Loopsfor-infor-condition-increment While Loopswhiledo-while Conditional Statementsifelseif elseswitchcaseswitch에 넘겨진 값에 대한 경우 (case)를 정의한다C 언어에서 같이 명시적으로 해당 case에 대한 break를 쓰지 않아도 된다case A: handle it for Acase B: handle it for B여러 case에 해당하는 경우 comma (',')로 연결된 형태로 정의한다case A, B: handle it for A or BCase에 Range 타입을 입력 할 수 있음case 1...3:Switch 타입이 Tuple인 경우도 처리할 수 있다case (A, B):case (1...3, 5...
-
Swift - Data Type #Collections기술 관련/Apple Swift 2014. 8. 8. 19:01
ArrayArray에 대한 타입은 Array 형태로 선언한다그러나 간략하게 [SomeType] 형태로 쓸 수 있다문자열에 대한 Arrayvar list: [String] = ["A", "B", "C"]당연한 이야기지만 let을 이용하는 경우 상수가 되며 편집 불가 (immutable) 상태가 된다같은 Type의 Array는 서로 병합이 가능하다list += ["d", "e"] + ["f"] Array 초기화Array를 생성 시 Type 정보화 함께 초기화를 할 수 있다var someInts = [Int]()이렇게 선언할 경우 item count가 0인 정수형 Array가 생성된다동일한 형태로 다음과 같이 선언 할 수도 있다var someInts:[Int] = []Array 타입은 특정 크기와 값으로 초기..
-
Swift - String기술 관련/Apple Swift 2014. 8. 8. 18:03
Objective-C NSString과 호환Swift String은 Objective-C NSString과 seamless 하게 동작하도록 연결되어 있음따라서, NSString에서 제공하던 API가 Swift String에서도 동일하게 제공됨 문자열 초기화literal 로 초기화var emptyString = ""Type initializer로 초기화var emptyString = String() 문자열 편집변수로 선언된 경우 따옴표로 묶여있는 문자열 또는 다른 문자열 변수/상수를 할당 Value 타입의 문자열기본적으로 String 타입은 Value 타입으로 함수나 메소드에 전달되나 새로운 변수, 상수에 할당 될 때 그 값이 복사가 된다실제 Swift 내부적으로는 실행 시 필요한 경우에만 복사를 한다고 ..
-
Swift - Data Type #Tuple기술 관련/Apple Swift 2014. 8. 8. 17:02
Tuples여러개의 값을 하나로 묶은 그룹을 말함Tuple에 들어가는 값은 어떤 타입도 가능하며, 각각 같은 타입일 필요도 없음괄호로 둘러싸이며 콤마로 구분된다예를 들어 let A = (404, "Not Found")로 선언하면 이는 (Int, String) 의 Tuple 타입으로 선언된 것이다A 를 전달 받을 B를 변수로 선언한다면 다음과 같이 선언한다var B:(Int, String) = A튜플를 다시 분리하려면 다음과 같이 변수이름으로 나눠서 선언해야 한다let (C, D) = A사용하지 않는 항목이라면 Underscore로 표현하여 무시한다let (C, _) = A아니면 그룹으로 묶어진 순서대로 dot 문자와 인덱스 숫자로 선언할 수 있다let C = A.0, D= A.1또는, Tuple 생성 시..
-
Swift - Data Type #Optionals기술 관련/Apple Swift 2014. 8. 8. 16:58
Optional 타입변수나 상수에 값이 있는지도 모르는 경우에 사용한다예를 들어 X에 값이 있는 경우에만 Y와 같은지 비교하고자 할 때 사용한다Optional로 선언하려면 데이터 타입 뒤에 물음표 (?)를 붙여서 사용한다예를 들어 정수형의 경우 다음과 같이 선언한다var A:Int?A에 정수값 100을 할당하거나 nil을 할당하여 A가 아무런 값이 없도록 할 수 있다.A = 100 또는 A = nil참고로 Swift의 nil은 Objective-C의 nil과 다르며 단지 값의 존재 여부를 확인하는 용도로만 사용된다만약 해당 값이 분명히 존재한다고 확신하는 경우 느낌표(!) 문자를 뒤에 붙여 사용할 수 있다if A != nil { println (" A has a value of \(A!).")} Opti..