코드 출처 - iOS 프로그래밍을 위한 스위프트 기초
- assert / guard
- assertion
- application이 동작하는 도중에 생성하는 다양한 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 도와줌
- assert(조건)
- 어떠한 결과, 조건들을 갖춘 뒤 확인해보는데 사용할 수 있음
- 디버깅 모듈에서만 작동
- 실제로 배포되는 application에서 동작 x
- 디버깅 中 내가 예상했던 조건이 맞는가 검증하기 위해 사용
- 매개 변수로 전달된 전달 인자를 검증한다.
- guard
- early exit → 빠른 종료
- return, break과 같은 구문 종료 지시어가 꼭 필요하다.
-
guard let /* 옵셔널 바인딩 먼저 실행 */ else { // 조건과 맞지 않으면 실행하라. (= 함수를 끝내라) return // <- 안 적어주면 컴파일 오류 } }
- unwrapping 해도 block 밖에서 사용할 수 있다
- Dictionary에서 자주 활용된다.
- early exit → 빠른 종료
- 코드
- assertion
- 프로토콜 protocol
- 특정 역할을 수행하기 위한 메서드, 프로퍼티, 이니셜라이저 등을 요구하는 기능
- 어떤 타입에 꼭 필요한 구현 사항을 알려주는 것
- 프로토콜 채택(Adopted) → 요구사항 모두 실제 구현
- 정의
-
protocol 프로토콜명 { /* 정의부 (안에 get, set 등도 적어줌) */ }
-
- 읽기전용 프로퍼티 ↔ 연산 프로퍼티 (서로 대체할 수 있음)
- 다중 상속이 가능함
- class와 다른 점!
- 코드
- 특정 역할을 수행하기 위한 메서드, 프로퍼티, 이니셜라이저 등을 요구하는 기능
- 익스탠션 extension
- 타입에 새로운 기능을 추가하는 것
- 메서드, 이니셜라이저, 프로퍼티, 서브 스크립트, 중첩타입, ...
- 기능을 추가하려는 타입의 구현된 소스를 모르거나 볼 수 없더라도 타입만 알고 있다면 추가할 수 있음.
- 정의
-
extension 확장할타입명: 프로토콜1, 프로토콜2, 프로토콜3... { /* 타입에 추가될 새로운 기능 구현 */ }
-
- 코드
- 타입에 새로운 기능을 추가하는 것
- 오류 처리 error handling
- Swift의 오류 표현 → Error 프로토콜 사용
- 정의
-
enum 오류종류: Error { case 종류1 case 종류2 case 종류3 //... }
-
- 정의
- 오류 발생
- hrows
- 오류가 발생할 여지가 있음을 내포
- 함수를 끝내며 오류를 던짐
- try를 사용해 호출
- do-catch
- 오류발생 대비
- try? / try!
- do-catch
- 코드
- hrows
- 고차함수
- 전달인자로 함수를 전달 받거나, 함수 실행의 결과를 함수로 반환하는 함수
- closure를 사용함
- 일급 객체이기 때문
- closure를 사용함
- map
- 기존 데이터를 변형해 새로 생성
- filter
- 조건에 부합하는 것만 새로 생성
- for구문 사용
- 상수로 바로 받아올 수 있음
- reduce
- 하나로 통합함
- 초기값을 지정해야 한다.
- 코드
- 전달인자로 함수를 전달 받거나, 함수 실행의 결과를 함수로 반환하는 함수
- Swift의 오류 표현 → Error 프로토콜 사용
'개발 > iOS' 카테고리의 다른 글
스크롤 안먹힐때 (0) | 2021.11.25 |
---|---|
[iOS/Swift] 오늘 배운 것 정리 #1 (0) | 2021.11.19 |
swift 문법 기초 6/7 (0) | 2021.08.30 |
틀린문제 (스위프트 클로저 퀴즈) (0) | 2021.08.29 |
swift 문법 기초 5/7 (0) | 2021.08.28 |
댓글