Xcode 6.3 베타 깔고 Swift 1.2 잠깐 만져봤다. 회사 iOS 프로젝트는 아직 Objective-C. 개인 프로젝트부터 시험.
1.1 → 1.2 가장 반가운 변경점은 빌드 속도. 체감이 달라짐. increment build 지원하고 whole module optimization도 들어옴. 1.1 시절엔 전체 재컴파일이 너무 자주 일어났었는데...
문법 변경도 몇 개 있는데 쓰면서 걸린 것:
1. as 가 as!, as? 로 나눠짐. downcast할때 강제/옵셔널 구분이 명시적으로. 코드 마이그레이터 돌리면 자동으로 as!로 바꿔주는데 사실 대부분은 as? 쓰는게 안전.
// 1.1
let label = view as UILabel
// 1.2
let label = view as! UILabel // 실패하면 crash
if let label = view as? UILabel { ... }
2. if let 체인 가능해짐. 이전엔 깊게 중첩해야 했는데:
if let a = optA, let b = optB, let c = optC where c > 0 {
// 모두 unwrap
}
3. Set 타입이 표준 라이브러리에 추가. 드디어.
4. let 상수를 한번만 assign할 수 있게 됨 (lazy constant). 이 변경은 내 코드엔 별 영향 없었음.
Swift 전반 소감은 "objc 알아야 잘 쓸 수 있다" 는거. framework 자체가 objc로 된거라 optional unwrapping이나 nullable 표시가 여전히 어색한 부분 많음. 근데 문법 자체는 objc보다 훨씬 간결해서 앞으로 안쓸 수 없을듯. 회사 프로젝트도 1.2 안정화되면 mix해볼 생각.
댓글 없음:
댓글 쓰기