본문 바로가기

Swift23

[Swift] 23. 오류처리 1. 오류처리 - Error Error 프로토콜과 주로 열거형을 통해서 오류를 표현 enum 오류종류이름: Error { case 종류1 case 종류2 case 종류3 //... } 2. do-catch throws 함수는 do-catch 구문으로 오류발생에 대비 3. try? 별도의 오류 발생 결과를 받지 않고 오류가 발생 시 결과값에 nil을 받음 4. try! 오류가 발생하지 않을 상황일 때 사용 오류가 발생하면 런타임 오류가 발생하여 어플리케이션이 중지 됨 2021. 11. 18.
[Swift] 22. Extension 1. extension 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능 extension은 타입에 새로운 기능을 추가 가능하지만 기존에 존재하는 기능을 재정의할 수는 없음 2. extension이 타입에 추가할 수 있는 기능 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티 타입 메서드/ 인스턴스 메서드 이니셜라이저 서브스크립트 중첩 타입 특정 프로토콜을 준수할 수 있도록 기능 추가 3. 상속과 익스텐션 비교 상속 익스텐션 확장 수직 확장 수평 확장 사용 클래스 타입 클래스, 구조체, 프로토콜, 제네릭 등 모든 타입 재정의 가능 불가능 extension 확장할 타입 이름 { /* 타입에 추가될 새로운 기능 구현 */ } extension 확장할 타입 이름: 프로토콜1, 프로토콜.. 2021. 11. 18.
[Swift] 21. 프로토콜 Protocol 1. 프로토콜 Protocol 프로토콜은 어떤 역할을 하는 메서드, 프로퍼티, 기타 요구사항 등을 설계한 것 protocol 프로토콜 이름 { /* 정의부 */ } protocol Talkable { // 프로퍼티 요구 // 프로퍼티 요구는 항상 var 키워드를 사용합니다 // get은 읽기만 가능해도 상관 없다는 뜻이며 // get과 set을 모두 명시하면 // 읽기 쓰기 모두 가능한 프로퍼티여야 합니다 var topic: String { get set } var language: String { get } // 메서드 요구 func talk() // 이니셜라이저 요구 init(topic: String, language: String) } 2. 프로토콜 상속 프로토콜은 하나 이상의 프로토콜을 상속받아 .. 2021. 11. 18.
[Swift] 20. assert, guard 1. assert - assert(_:_:file:line) 디버깅 모드에서만 동작, 디버그 배포하는 어플리케이션에서는 제외됨 assert 메서드 체크할 조건문 / 조건 미충족 시 메시지 / 메시지를 출력할 파일 / 출력할 메시지 2. guard 잘못된 값의 전달 시 특정 실행구문을 빠르게 종료해줌 디버깅 모드 이외에도 동작 guard ~ else 구문에는 코드블럭의 종료 지시어 return, break 등이 있어야 함 guard 조건 else { 조건이 false return || throw } 2021. 11. 18.