Swift

    스위프트(Swift) - 집단 자료형(Collection Types) Ⅰ. 배열(Array)

    스위프트(Swift) - 집단 자료형(Collection Types) Ⅰ. 배열(Array)

    스위프트는 서로 관련이 있는 데이터끼리 모아 관리할 수 있도록 집단 자료형(Collection Types)를 제공한다. 그 중 먼저 배열(Array)에 대해서 알아보자. 배열(Array)는 일련의 순서를 가지는 리스트 형식의 값을 저장하는데 사용되는 자료형으로, 대부분의 언어에서 제공하는 자료형이다. 배열에 입력되는 아이템들은 각각의 순서가 있는데 이를 인덱스(Index)라고 한다. 배열에서 인덱스는 0부터 순서대로 할당되고 중간에 값을 생략하거나 건너뛰는 것은 불가능하다. 인덱스에 연결된 아이템이 삭제되더라도 뒤 아이템들이 한 칸씩 앞으로 이동하면서 빈 인덱스의 자리를 채우게된다. 물론 이런식으로 마지막 인덱스의 아이템은 앞으로 이동할 아이템들이 없기 때문에 바로 삭제된다. 스위프트에서 사용하는 배열은..

    스위프트(Swift) - 제어 전달문(Control Transfer Statements)

    제어 전달문(Control Transfer Statements)은 코드의 한 부분에서 다른 부분으로 제어 흐름을 전달하여 코드가 실행되는 순서를 변경해주는 구문이다. 보통 반복문이나 조건문, 함수 등에서 사용되는 이 구문은 C언어나 다른 언어에서도 많이 사용된다. 스위프트에서 사용되는 전달문은 다음 네 가지가 존재한다. break continue fallthrough return break break 구문은 switch 구문에서의 실행 흐름이나 반복 실행 중인 루프를 조건식의 결과에 상관없이 즉각 종료하는데 사용된다. for row in 0...5 { if row > 2 { break } print("\(row) was executed!") } /* 실행결과 0 was executed! 1 was exe..

    스위프트(Swift) - 조건문 Ⅳ. switch 구문

    스위프트(Swift) - 조건문 Ⅳ. switch 구문

    switch 구문은 if와 guard 구문처럼 분기문의 일종이지만, 처리방식은 사뭇 다르다. switch 구문의 경우 입력받은 값을 조건식 여부가 아니라 패턴으로 비교하고 그 결과를 바탕으로 실행 블록을 결정하는 조건문이다. 나열된 패턴들을 순서대로 비교하다가 일치하는 첫 번째 패턴의 코드 블록을 실행한다. 굳이 switch 구문을 사용하지 않아도 if ~ else if 구문만으로도 작성이 가능하나 다양한 가능성이 있는 여러 개의 조건에는 switch 구문을 사용하는 것이 좀 더 효율적이다. switch 구문의 형태는 다음과 같다. switch { case : case , : default : } 스위프트의 case 구문은 C언어, 자바 등의 case 구문과 실행방식에 있어 차이점이 존재한다. C나 자바..

    스위프트(Swift) - 조건문 Ⅲ. #available 구문

    앱을 개발하다보면 기기의 OS버전별로 구문을 나누어 작성해야할 경우가 종종있다. 사용하고자 하는 기능이 OS 버전에 따라 다르게 제공되거나 하위 버전에서는 지원되지 않는 것이 가장 큰원인인데 이를 보통 "API가 버전을 탄다"라고 표현한다. 애플에서 제공하는 코코아 터치 프레임워크의 주요 API들은 대부분 iOS 버전이 업그레이드될 때마다 개량을 거듭하기 때문에 iOS 버전에 따라 종종 사용이 제한되기에, 특정 API를 사용할 때엔 애플 개발자용 API 문서를 확인해 사용 가능한 OS버전과 기기를 꼭 체크해야한다. 이 때 유용하게 사용되는 구문이 #available 구문인데 먼저 이 구문을 사용하지 않을 경우를 살펴보자.(참고로 #available 구문은 스위프트 2 버전부터 지원하기 시작한 구문이다.)..

    스위프트(Swift) - 조건문 Ⅱ. guard 구문

    guard 구문은 if 구문과 마찬가지로 조건의 결과가 참인지 거짓인지에 따라 구문의 실행여부를 결정하는 조건문이다. if 구문과의 차이는 guard 구문에는 else 블록이 필수이지만, 조건이 참일 때 실행되는 블록이 따로 없다는 점이다. guard else { } guard 구문은 주로 후속 코드들이 실행되기 전에 조건을 만족하는지 확인하는 용도로 사용한다. 말하자면 특정 조건을 만족하지 않고 후속 코드를 실행할 경우 오류가 발생할 경우 전체 구문을 조기 종료(Early Exit)하기 위한 목적으로 사용된다는 것이다. 따라서 guard 구문의 else 뒤에는 return, break와 같은 코드의 진행을 막아주는 구문이 반드시 포함되어야 한다. 다음은 0으로 나누면 안되는 숫자의 특성을 guard 구..

    스위프트(Swift) - 조건문 Ⅰ. if 구문

    다른 말로 분기문(Branch Statements)라고도 불리는 조건문은 프로그램에서 하나 또는 그 이상의 조건값에 따라 실행하도록 프로그램의 흐름을 분기하는 역할을 한다. if 구문은 대부분의 프로그래밍 언어에서 가장 많이 사용되는 구문 중 하나로 if 조건절을 사용하여 조건식의 결과가 참(true)일 때만 블록 내부의 구문을 실행하고, 거짓(false)이면 코드 블록을 빠져나가 if 블록 다음에 위치한 코드를 수행한다. if { } 키워4드 if 다음에는 조건식이 사용되는데, 이 조건문은 반드시 Bool 타입의 참(ture), 거짓(false)을 판단할 수 있는 형태의 구문이어야 한다. (참고로 숫자의 경우 0만 false 나머지는 모두 true로 인식되는 특징?이 있다.) if 구문의 예시는 다음과..