일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- ReactorKit
- 웹
- 스유
- Swift
- 멋사
- dispatchqueue
- cs
- spritekit
- composable architecture
- swift concurrency
- 대외활동
- 컴퓨터그래픽스
- 네트워크
- 위젯킷
- SwiftUI
- 후기
- 운영체제
- Protocol
- 스위프트
- 알고리즘
- TCA
- c++
- 멋쟁이사자처럼
- 리액트
- 영남대
- uikit
- 문법
- widget
- widgetkit
- Today
- Total
목록스위프트 (5)
맛동산이
스위프트 개발을 하다가 갑자기 다음과 같은 에러가 났다.👉Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value당연하게도 구글에 검색을 해봤는데,찾아보니 제대로된 해결법을 시원하게 설명해주는게 아니라 잡소리가 너무많아서 내가 작성을 해두기로 했다. 오류 코드를 읽어보면, 옵셔널 벨류값에 언래핑을 해주었지만, nil값이 들어가기 때문에 문제가 발생한다고 되어있지만. 실제 문제는 코드의 위치의 문제에서 발생한다. 다음과 같은 문제점은 스토리보드에서 연결할때, 잘못해준 경우에 발생하는것이다.그래서 연결을 삭제 해주고, 클래스 내부에 함수 밖 독자적으로 연결을 해준 다음, 코드를 입력하면 문제를 해결 할수 있다. 나의 경우..

프로토콜은 타입으로 사용이 가능하다. 이것은 해당 프로토콜을 채택한 어떠한 클래스의 인스턴스도 들어갈 수 있다는 것을 의미한다. " You can set it to an instance of any type that adopts the protocol ." 예를 들어 protocol Human { func getAge() -> Int } class Male: Human { var age: Int init(_ age: Int) { self.age = age } func getAge() -> Int { return age } } class Female: Human { var age: Int var name: String init(age: Int, name: String) { self.age = age sel..
공부의 발단.. KVO(key-value observing)에 대해서 공부를 하다가, dispatch에 관한 이야기가 나와서, 해당 부분에 대해서 난생처음 본 부분이라 공부하게 되었다. 컴파일과 런타임 가장 먼저 컴파일과 런타임에 대한 이해가 있어야 한다. 컴파일 : 컴파일이란, 우리가 작성한 코드가 어셈블리어, 즉 기계가 이해할수 있는 0과 1의 언어로 변환되는 과정을 의미한다. 런타임 : 런타임이란, 위에서 컴파일을 거친 코드가, 사용자에 의해 사용되어지는 순간을 의미한다. Dispatch Dispatch란 오버라이드 된 메서드가 존재할때, 어떤 메서드를 호출할 것인지를 결정하여, 그것을 실행하는 메커니즘이다 Swift에선 Static Dispatch와 Dynamic Dispatch 두 가지 방식이 ..

Notification Center 처음에 어플리케이션을 만들때, 콜렉션뷰에서 cell 내부의 버튼을 통해서 현재 cell의 이미지를 홈뷰 이미지뷰에 넣어주기 위해서 cell 내부에는 클로저를, item controller에는 delegate를 사용해서 homeView에 이벤트를 넘겨주었는데 작동하지 않았다. Notificatin Center 우선 Notification Center은 클래스이다. 그리고 이 Notification Center의 인스턴스는 enables the broadcast of information to registered observers,라는 역할을 하는데, 번역하자면 등록된 옵저버들에게 정보를 전달해주는 역할을 한다는 뜻이다. 노티피케이션 센터는 옵저버 패턴이다. 옵저버란, 스..

Hashable이란? 먼저 최초의 질문은 Hashable이라는 프로토콜이 무엇인지에 대한 궁금증에서 출발한다. Hashable이란, hasher로 인하여 int값인 hash value를 가져서 hashing 될수있는 타입을 의미한다. 그렇다면 Hasher는? Hasher는 구조체 이며, hash 함수이며, 주로 셋과 딕셔너리 타입에서 사용한다. 해당 메소드를 보면 다음과 같은데 .combine(H) : 주어진 값을 해셔에 추가해서 해셔에 혼합한다. .finalize() → Int : 해시를 완료하고 해시 값을 반환한다. 해시(Hash) 쉽게 말해서 딕셔너리 같은 타입이 해시를 사용하게 되는데, 이는 Key와 Value값의 1대1 매핑을 해주게 되는 자료형이다. 그런데 이때 이 value값을 해시테이블이라..