Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |
Tags
- HIG
- 리팩토링
- clean architecture
- Human interface guide
- 클린 코드
- swiftUI
- combine
- collectionview
- Protocol
- RxCocoa
- 리펙터링
- Xcode
- Clean Code
- MVVM
- SWIFT
- uitableview
- map
- 스위프트
- swift documentation
- rxswift
- 애니메이션
- Observable
- uiscrollview
- Refactoring
- ribs
- tableView
- UITextView
- 리펙토링
- ios
- UICollectionView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift 공식 문서] 1. Basics (Type Aliases, 예외 처리) 본문
Int
- Swift는 현재 플랫폼의 bit에 따라 적용
- 32bit 플랫폼 -> Int는 Int32와 동일
- 64bit 플랫폼 -> Int는 Int64와 동일
UInt
- UInt또한 Int와 동일하게 플랫폼의 bit에 따라 적용
Type Safety, Type Inference
- swift는 type safe 언어이므로, 컴파일타임에 오류를 표출하므로, 개발 프로세스에서 빠른 오류 포착 용이
- 만약 타입을 지정해주지 않는 경우 컴파일 타임에 Type Inference
// Type Inference
let age = 42 // Int로 추론
let pi = 3.141592 // Double로 추론
Type Aliases
- typealias 키워드는 type의 별칭을 정의
class Map {
typealias ZoomLevel = UInt16
let defaultZoom: ZoomLevel
init(defaultZoom: ZoomLevel) {
self.defaultZoom = defaultZoom
}
}
예외 처리
- 오류 vs 예외
- 오류: 상황에 대한 처리 불가
- 예외: 상황에 대한 처리 가능
- 예외를 던지는 부분과 처리하는 부분이 나누어져 있는 형태
- 예외 던지는 부분: 해당 함수
- 예외 처리하는 부분: 함수를 사용하는 부분
- 예외 처리 방법
- 예외가 발생하는 함수 부분에 throws 키워드 추가
- 예외를 처리할 부분에 do - try - catch 구현
- 예외 케이스를 정의하여 catch 부분에 정밀하게 처리
예제
- 예외 타입 정의
enum TestError: Error {
case lowValue
case highValue
}
- 예외 throw
func plusThree(at number: Int) throws -> Int {
if number < 0 {
throw TestError.lowValue
} else if number > 100 {
throw TestError.highValue
}
return number + 3
}
- 예외 처리 - try? 로 따로 예외처리를 안하고, 예외 발생할 시 nil로 받는 방법
class Test {
func test() {
print(try? plusThree(at: -1)) // nil
}
}
- catch로 디테일 예외처리
class Test {
func test() {
do {
try plusThree(at: 101)
} catch TestError.lowValue {
print("예외 처리 커스텀")
} catch {
print(error) // highValue
}
}
}
* 참고
https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
'swift 공식 문서' 카테고리의 다른 글
[iOS - swift 공식 문서] 6. Functions (함수) (0) | 2021.06.23 |
---|---|
[iOS - swift 공식 문서] 5. Control flow (흐름 제어) (0) | 2021.06.21 |
[iOS - swift 공식 문서] 4. Collection Types (컬렉션 타입) (0) | 2021.06.19 |
[iOS - swift 공식 문서] 3. String (문자열) (0) | 2021.06.18 |
[iOS - swift 공식 문서] 2. Basic Operators (기본 연산자, Nil-Coalescing, One-Sided Ranges) (0) | 2021.06.17 |
Comments