일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1일1알골
- 웹
- uikit
- 스유
- 알고리즘
- 후기
- cs
- SwiftUI
- 멋쟁이사자처럼
- widgetkit
- Protocol
- composable architecture
- dispatchqueue
- spritekit
- 백준
- 문법
- widget
- 리액트
- 네트워크
- 위젯킷
- TCA
- 컴퓨터그래픽스
- c++
- 영남대
- 대외활동
- Swift
- 스위프트
- 멋사
- 운영체제
- swift concurrency
- Today
- Total
목록에러처리 (3)
맛동산이
swift concurrency와 result에 대해서 사용을 하려고 하다보니 Error타입에 대해서 계속해서 등장을하는데 한번도 제대로 공부해본적이 없는것 같아서 정리해보려고 한다.Error스위프트에서 Error는 Error라는 프로토콜을 준수하는 값 타입으로 표현된다.Error는 빈 프로토콜이라서 Error를 던져주기 위해서는 Error를 그냥 쓰면 안되고 enum으로 Error를 정의해서 던져줘야 제대로된 Error를 채택하는 에러를 ㅋㅋ( 말이 웃기네 ㅋㅋㄹㅋㅋ) 던져준다.그냥 간단하게 Error자체로는 못씀.enum으로 Error를 정의해줘야 사용가능Error 타입 정의enum NetworkError: Error { case 종류1 case 종류2 case 종류3 //.....
rethrows란 함수를 파라미터로 받는 함수에서 에러가 발생할수 있음을 의미하는 키워드이다. 즉 최소 한개 이상의 에러를 throw하는 함수를 매개변수로 받아야 한다. 간단한 예제는 다음과 같다. enum Errors: Error { case someError } func throwErrors(about value: Int) throws -> Int { if value == 0 { throw Errors.someError } return value } func checkThrow(completion: (Int) -> Int ) { do { try throwErrors(about: 0) } catch (let error) { print(error.localizedDescription) } } checkT..
스위프트 개발을 하다가 갑자기 다음과 같은 에러가 났다.👉Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value당연하게도 구글에 검색을 해봤는데,찾아보니 제대로된 해결법을 시원하게 설명해주는게 아니라 잡소리가 너무많아서 내가 작성을 해두기로 했다. 오류 코드를 읽어보면, 옵셔널 벨류값에 언래핑을 해주었지만, nil값이 들어가기 때문에 문제가 발생한다고 되어있지만. 실제 문제는 코드의 위치의 문제에서 발생한다. 다음과 같은 문제점은 스토리보드에서 연결할때, 잘못해준 경우에 발생하는것이다.그래서 연결을 삭제 해주고, 클래스 내부에 함수 밖 독자적으로 연결을 해준 다음, 코드를 입력하면 문제를 해결 할수 있다. 나의 경우..