본문
160811(목) - Swift
Swift - 02 Xcode & 기본문법
C기반의 컴파일러 GCC ▶ Apple 컴파일러 LLVM
ARC기능
객체의 참조 카운팅을 컴파일러에서 스스로 처리
스토리보드 형식
화면 인터페이스를 설계할 때 여러개의 화면을 한 파일에서 통합으로 다룸으로서 서로간의 연결 관계나 흐름을 쉽게 파악할 수 있도록 지원
플레이 그라운드
- 실시간으로 코딩하고 결과를 볼 수 있도록 해줌
- 클래스나 구조체 등 캡슐화 객체를 코딩해야 할 필요가 있을 때, 먼저 코딩해보면 개발 생산성에 도움
스위프트의 문법적 특성
1. 헤더파일 X
클래스나 구조체를 선언할 때 Interface와 Implementation이 분리되지 않고 통합되는 특성이 있다.
2. 대소문자 구분
- 함수와 메소드, 인스턴스명의 첫 글자는 소문자
- 클래스와 구조체, 프로토콜, 확장체 등 객체의 첫 글자는 대문자
3. 구문끝의 세미콜론(;)은 옵션
대신 for문 등 한 줄에 두 개 이상의 구문을 작성시에는 끝을 명시해주어야 함
4. main() 함수가 없다.
- 엔트리 포인트 함수가 필요 없음
- 맨위의 구문부터 순서대로 해석
- @UIApplicationMain Annotation을 사용하여 앱의 시작 객체를 지정
5. 문자열뿐만 아니라 문자도 큰따옴표 사용
6. import는 라이브러리와 프레임워크 참조 용도
7. Java처럼 한 줄, 여러 줄 주석처리 가능, 주석 내부에 또다른 주석 가능
8. try ~ catch 지원
Optional의 한계 극복 가능
변수와 상수
변수
var year = 2015
var year : Int
year = 2015
상수
let birthYear = 1980
※ 변수, 상수명으로 한자나 이미지용 바이너리 코드까지 지원
숫자 + 문자 -> 오류로 판단
Type annotation
변수나 상수를 선언할 때 그 타입을 명시적으로 선언해주어, 여기에 어떤 타입의 값이 저장될 것인지를 컴파일러에 명확하게 알려주는 문법
타입 추론
직접 타입을 지정해 주지 않아도 초기화 될 때 입력되는 값을 분석하여 컴파일러가 스스로 적합한 타입을 추론하여 적용하는 기능
명시적인 타입 선언이 필요한 경우
1. 변수나 상수의 선언과 초기화를 분리할 경우
2. 다른 타입을 직접 지정할 필요가 있을 때
var temper1 = 3
var temper2 : Float = 3
타입 변환
String(숫자변수)
Int(문자변수)
문자열 템플릿
let name = "마스터"
let birthY = 80
let profile = "\(name)님은 \(birthY)년 살꺼야!
print(profile)
let apple = 3
let banana = 2
let desc = "과일은 총 \(apple+banana)개 입니다.
범위 연산자(range operator)
닫힌 범위 연산자(closed range operator)
- [1 ~ 5] 를 뜻한다.
1...5
반 닫힌 범위 연산자(half-closed range operator)
- [1 ~ 5) 를 뜻한다.
1..<5
- 왼쪽은 없음
댓글