1. Array
var a = Array<String>()
var a = [String()
let animals = ["Giraffe", "Cow", "Doggie", "Bird"] //var로 변경해야 append 가능
animals.append("Ostrich")
let animal = animals[5] //crash(array out of bounds)
//enumerating an Array
for animal in animals {
print("\(animal)")
}
Array 메소드
1. filter
Array의 모든 요소마다 클로져를 실행하고 true로 반환되는 요소를 포함시켜 반환
filter(includeElement: (T) -> Bool) -> [T]
let bigNumbers = [2, 47, 118, 5, 9].filter({ $0 > 20 }) //[47, 118]
2. map
Array의 각 요소를 다른것으로 변환 ex: (int -> String) 변환
filter처럼 { }밖으로 소괄호가 없음. 클로저가 함수의 마지막 인자면 소괄호 있어도 되고 없어도 됨
map(transform: (T) -> U) -> [U]
let stringified: [String] = [1,2,3].map{ String($0) }
3. reduce
Array를 하나의 결과로 줄일 수 있음
첫번째 인자를 위해서 ( ), 클로저는 밖에 { } - 트레일링 클로져 문법
reduce(initial: U, combine: (U, T) -> U) -> U
let sum: Int = [1,2,3].reduce(0) { $0 + $1 }
2. Dictionary
var pac10teamRankings = Dictionary<String, int>()
var pac10teamRankings = [String:Int]()
pac10teamRankings = ["Stanford":1, "Cal":10]
let rankings = pac10teamRankings["Ohio State"] //Int? would be nil
//use a tuple with for-in to enumerate a Dictionary
for (key, value) in pac10teamRankings{
print("\(key) = \(value)")
}
값 추출 시 key만 원한다면 value에 언더바, value만 원한다면 key에 언더바 넣으면 됨
3. String
전체가 유니코드
var characters: String.CharacterView { get }
String에서 characterView를 호출하면 문자의 배열처럼 보이는 문자(사실은 아닌)를 가져옴
int로 찾고 문자를 가져올 수 있음. 긴 String의 경우 Array사용
4. Other classes
NSObject
모든 Object-C 클래스들의 기본 클래스
Objective-C로 된 API를 Swift에서 사용할 때 NSObject의 자식클래스가 되는 클래스 필요
NSNumber
Objective-C에서의 구조체는 스위프트의 구조체와 다름(C의 구조체와 비슷)
Double, Int는 C의 double과 int임(객체 아님)
Array에 많은 숫자를 넣길 바라면? 불가 - Array는 객체로 된 Array이며 Objective-C의 double, int는 원시타입
NSNumber는 원시타입을 객체 안에 포장하기위한 방법
Int가 나열된 Array : Objective-C에선 NSNumber로 된 Array, Swift에선 Swift의 Int로 된 Array
Array, Dictionary, Int, Double, NSNumber는 자동연결(브리징)
한쪽이 다른쪽으로 되어야 하는 함수를 호출하면 자동으로 동작됨
let n = NSNumber(35.5)
let intversion: Int = n.intValue
NSDate
날짜 관련 UI작업 시 사용
NSData
비트 단위 데이터 모음
데이터 전달(ex 네트워크 상 이미지 데이터) 시 사용
'iOS > 스탠포드 iOS 강의' 카테고리의 다른 글
[스탠포드iOS] Gestures (1) | 2024.03.22 |
---|---|
[스탠포드iOS] Text & Image (0) | 2024.03.20 |
[스탠포드iOS] View (0) | 2024.03.19 |
[스탠포드iOS] Swift 기초문법 정리(AnyObject, Plist, NSUserDefault) (1) | 2024.03.17 |
[스탠포드iOS] Swift 기초문법 정리(Initialization) (0) | 2024.03.17 |