post list

2015년 2월 7일 토요일

Swift(스위프트) 강좌 : 빠르게 시작하기 2

옵셔널(Optionals)


옵셔널은 어떤값이 부재인지를 체크합니다. 옵셔널에 대한 개념은 C나 Objective-c 에서는 없습니다.  

옵셔널은 다음을 이야기 합니다.
  • 그곳에는 값이 "있다, 그리고 그것은  x와 동일하다. 
  • 그곳에는 값이 전혀"없다"
다시말해서  변수를 쓰고 싶은데 어플 실행중에 상황에 따라 변수에 값이 없을 수도 있을때 그것을 대처하기 위해 씁니다. 

선언은 다음과 같이 변수형뒤에 '?' 를 붙입니다.  값이 없을때는 nil 이 들어갑니다.
변수 선언하고 초기화 하지 않을 경우에는 자동으로 nil 이 들어갑니다.

1
2
3
4
5
6
var serverResponseCode : Int? = 404
// severResponseCode contains an actual Int value of 404
serverResponseCode = nil
//serverResponseCode now contains no value
var surveyAnswer: String
cs


if문과 강제 언랩핑(If Statements and Forced Unwrapping)

옵셔널이 값을 가지고 있는지 찾기 위해서 if문을 사용할수 있습니다. 

만약 옵셔널이 확실하게 값을 가진다는것을 알때 변수명 뒤에 '!' 를 붙여 줍니다. 이것을 강제 언랩핑이라고 합니다. 
만약 강제언랩핑한 변수에 값이 없을경우 런타임 에러가 발생합니다.
1
2
3
if convertNumber != nil {
    println("convertedNumber has an integer value of \(convertedNumber!).")
}
cs

배열(Arrays)

스위프트에서 배열은 특정 변수 타입만 저장 할 수 있습니다.. objective-c 의 NSArray 와 NSMutableArray 클래스와 다릅니다. 따라서 Int 형 타입 배열을 생성했다면 int 외에는 저장이 불가능합니다.  

배열 타입 축약 문법 (Array Type Shorthand Syntax)

정확한 배열 타입을 정확하게 쓰려면 Array<SomeType> 형태로 해야합니다. 
축약 형태인 [SomeType] 로 배열을 사용할 수 있습니다.  축약형태로 쓰는걸 권장합니다.

배열생성은 다음과 같이 합니다. 
값 타입이 같다면  타입을 명시 하지 않아도 됩니다.
1
2
var shoppingList : [String] = ["Eggs","Milk"]
var shoppingList2 = ["coffee","water"]
cs

배열의 접근 및 수정 Accessing and Modifying an Array

한꺼번에 코드로 설명합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//item 개수 확인
println("The shopping list contains \(shoppingList.count) item.")
//배열이 비었는지 확인
if shoppingList.isEmpty {
    println("The shopping list is empty.")
else {
    println("The shopping list is not empty.")
}
//배열 마지막에 추가
shoppingList.append("Flour")
shoppingList += ["Baking Powder"]
shoppingList += ["Chocolate Spread""Cheese""Butter"]
//배열로 부터 값 찾기 
var firstItem = shoppingList[0]
//배열에 값 넣기
shoppingList[0] = "six eggs"
// 법위를 지정해서 값을 넣을 수도 있습니다. 바꾸려는 범위가 실제 범위와 달라도 됩니다.
//4번 - 6번 index 의 값이  4,5번에 banans , apples 로 바뀝니다.
shoppingList[4...6] = ["Bananas""Apples"]
//특정 index 값 지우기 그리고 그 값 return
let mapleSyrup = shoppingList.removeAtIndex(0)
//마지막 값 지우기 그리고 그 값 return
let apple = shoppingList.removeLast()
cs


배열에서 반복문 사용하기 Iterating Over an Array

for-in 반복문을 사용하면 배열 안에 모든 값에 접근 가능합니다. 

인덱스가 필요하다면 enumerate 를 사용해서 배열을 돌릴 수 있습니다. 
enumerate 함수는 각각의 값과 인덱스를 결합한 튜플을 반환합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for item in shoppingList {
    println(item)
}
// Milk
// Flour
// Baking Powder
// Bananas
for (index, value) in enumerate(shoppingList) {
    println("Item \(index + 1): \(value)")
}
// Item 1: Milk
// Item 2: Flour
// Item 3: Baking Powder
// Item 4: Bananas
cs

배열의 생성과 초기화 Creating and Initializing an Array

초기값 할당 없이 특정 타입을 가진 빈 배열 만들기
1
var someInts = [Int]()
cs


다음엔 Dictionaries 부터 시작합니다. 최대한 필요한것만 적으려고 하는데 
은근히 길어지네요 

댓글 없음:

댓글 쓰기