woong's
IOS Xcode Swift 문법 사용하기 본문
IOS Xcode Swift 문법 사용하기
IOS 를 시작하면서 ObjectC 로 접근을 하게되어 따로 Swift를 학습해서 채워가야 하는 부분이
필요할것 같아서 조금씩 정리해가면서 전환해 보려 합니다. 애플에서 Swift를 밀고 있어서
피할래야 피할수는 없을것 같습니다. 익숙함을 벗어나기는 쉽지 않겠지만 조금씩 조금씩
하다보면 언젠가는 되리라 생각합니다. :D
데이터 타입, 상수 그리고 변수
1 2 3 4 5 6 7 | var userName = "woong" //변수 let userName = "woong" //상수 var userName : String = "woong" //타입 어노테이션 var userName = user.objectForKey("name") as String //타입 변환 | cs |
상수 : 변수와 비슷하지만 한번 할당되면 값의 변경이 불가
변수 : 데이터를 저장하기 위한 메모리 안의 공간
타입 어노테이션
var 를 사용하기 때문에 변수, 상수가 명확하지 않기 때문에 명확히 타입을 지정해줄때
사용. 변수,상수 뒤에 타입을 명시
타입 변환
코드를 작성하다 보면 컴파일러가 타입의 값을 식별 할수 없는 경우에 타입 변환을 사용
as 키워드를 사용하여 타입 변환
튜플
1 2 3 4 5 6 7 | let user = ("woong" , 27) print(user.0) // woong let user = ( name : "woong" , age : 27) print(user.name) // woong | cs |
튜플! 굉장히 좋은 문법인것 같습니다. 튜플이 없을때는 객체 VO 를 생성하거나
딕셔너리를 이용해서 return 하던 경험이 있는데 때에따라 잘사용하면 편리하게
이용할수 있을것 같습니다.
튜플 : 여러 값을 하나의 개체에 묶는 방법 , 타입도 어떠한 타입도 가능
하나의 변수,상수에 여러개의 타입을 한개에 담을수 있습니다.
위와 같이 인덱스를 통해서 꺼낼수도 있고 이름을 지정하면 이름을 통해서 추출이 가능.
옵셔널
1 2 3 4 5 6 7 8 9 10 11 | var name : String? // name은 문자를 갖거나 아무 값도 갖지 않을수 있음. name = "woong" //래핑 if name != nil { // 값 비교 print(name!) //언래핑 } else { print("nil") } | cs |
옵셔널 : 변수, 상수에 아무런 타입의 값이 할당 되지 않는 상황을 처리하기 위한 안전하고 일관된 방법
래핑 : 옵셔널을 사용한 변수에 값을 갖게 할경우
언래핑 : 래핑된 데이터 에서 값을 추출
1 2 3 4 5 6 7 8 9 10 11 | var name : String! // 암묵적 언래핑 name = "woong" //래핑 if name != nil { // 값 비교 print(name) // ! 제거 } else { print("nil") } | cs |
암묵적 언래핑
! 를 사용하여 암묵적 언래핑화 시킬수 있으며 암묵적 언래핑을
사용하면 언래핑을 해주지 않아도 된다.
If ..Else , For 문
1 2 3 4 5 | for index in 1...20 { print(index) } | cs |
for문은 for in 문법을 사용한다.
앞의 index 상수는 반복문이 돌면서 값을 담아 사용된다.
1 부터 시작해서 20 으로 끝이 난다.
1 2 3 4 5 6 7 | var x = 100 if x > 50 { print("x > 50") } | cs |
if 문은 거의 동일하다 () 괄호를 쓰지 않는 다는점이 다름.
Switch 문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var number = 4 switch (number) { case 0 , 1 , 2: //복합 구문 print("zero , one , two"); case 3: print("three"); case 4: print("four"); case 5: print("five"); } | cs |
기본 문법은 위와 같습니다. 기존의 사용하던 것과 다른 것은
break 문이 없다는 것입니다. break문에 없어도 해당 case가 호출되고
밖으로 빠져 나갑니다. 간혹 switch 문을 사용하다보면 break 없이 사용할때
가 있습니다. 그경우는 fallthrough 키워드를 사용하여 아래로 내려보낼수 있습니다.
switch 문의 몇가지 다른 점이 있습니다.
매칭 범위 , where 문 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var number = 4 switch (number) { case 0...10: print("0...10"); case 10...20: print("10...20"); case 20...30: print("20...30"); case 30...40: print("30...40"); } | cs |
위와 같이 매칭의 범위를 지정할수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var number = 4 switch (number) { case 0...10 where number % 2 == 0: print("0...10"); case 10...20 where number % 2 == 0: print("10...20"); case 20...30 where number % 2 == 0: print("20...30"); case 30...40 where number % 2 == 0: print("30...40"); } | cs |
위와 같이 조건을 통해서 짝수를 걸러낼수도 있습니다.
'Develop > IOS' 카테고리의 다른 글
IOS Xcode Swift PageViewController 사용하기 (1) | 2016.03.29 |
---|---|
IOS Xcode Swift Delegate 사용하기 (0) | 2016.03.23 |
Xcode Realm 사용하기 (0) | 2016.03.15 |
Xcode Unit Test 하기 (0) | 2016.03.14 |
IOS Xcode WebView Cookie 사용하기 (4) | 2016.02.29 |