티스토리 뷰
0123 TIL by JIWON1923 · Pull Request #7 · JIWON1923/Today-I-Learend
Swift Never 타입 CPU 제어권을 돌려주지 않고, 앱을 크래시 시키는 타입이다. fatal 함수의 Return 타입으로 사용된다. 검증함수 assert() / assertFailure() 경미한 에러로, 디버깅 모드에서 앱이 종료된다. pre
github.com
Swift
Never 타입
- CPU 제어권을 돌려주지 않고, 앱을 크래시 시키는 타입이다.
- fatal 함수의 Return 타입으로 사용된다.
검증함수
- assert() / assertFailure()
- 경미한 에러로, 디버깅 모드에서 앱이 종료된다.
- precondition() / preconditionFailuer()
- 반드시 앱을 종료시켜야하는 경우 사용한다.
- 반드시 업데이트 시켜야하는 경우 등
알고리즘
BFS
- 너비 우선 탐색으로, 다음 레벨을 탐색하기 이전에 같은 레벨에 있는 모든 노드를 방문해야한다.
- 자료구조 Queue로 구현해야한다.
트리의 순회
- 전위 순회 : 현재 노드 -> 왼쪽 자식 노드 -> 오른쪽 자식 노드 (DFS)
- 중위 순회 : 왼쪽 자식 노드 -> 현재 노드 -> 오른쪽 자식 노드
- 후위 순회 : 왼쪽 자식 노드 -> 오른쪽 자식 노드 -> 현재 노드
- 레벨 순회 : BFS
ShortcutsZip
[Fix] 앱이 백그라운드에 없을 때 공유 기능이 제대로 작동하지 않는 버그 · Issue #363 · DeveloperAcade
버그 설명 백그라운드에서 ShortcutsZip이 존재하지 않는 상태에서 공유링크를 클릭하면 비어있는 모달이 출력됩니다. 접근 단계 백그라운드에 있는 ShortcutsZip을 종료해주세요 공유받은 링크를 실
github.com
이슈가 일어난 이유
- sheet에서 State를 사용하는 경우, 첫 화면에서 빈 화면이 나타나는 이슈가 존재한다. (iOS 14부터 존재하는 이슈로 확인됨)
- 참조에 따르면 State 변수가 예측하기 힘든 상황에서는 데이터가 제대로 작동하지 않는다고 한다. (정확한 문서나 답변은 찾지 못했다)
- 이를 해결하기 위해서 Sheet에 전달하는 데이터는 State가 아닌 Binding으로 전달해야한다.
- 현재 뷰가 State로 선언되어있으며, Binding으로 변경하기 애매한 상황이다. (Read Shortcuts View, Read Curation View) 모두 작업을 진행해야함 + 참조하는 페이지가 많아서
- 이에 팀원들과 논의 후 Navigation으로 진행하거나, Binding으로 선언한 새로운 뷰를 선언하여 작업을 진행할 예정이다. (현재는 Navigation으로 변경한 상태임)
trouble shooting
어떤 Navigation Path에 추가해야하는가?
- 현재 탭뷰를 사용하고 있어서, 3개의 Navigation Path를 선언해서 사용하고 있다.
- 그래서 무작정 첫번째 Navigation Path에 Append 할 경우, 큐레이션 탭에서 백그라운드를 둔 채 링크를 클릭하면, 제대로 동작하지 않는다.
- 현재 사용자가 있는 탭이 App Storage에 저장되어있다는 점에서 착안하여 switch 문을 통해 path를 append할 수 있도록하여 문제를 해결하였다.
같은 코드의 중복
- 단축어 글에 대한 정보를 공유할 수도 있고, 큐레이션 데이터를 공유할 수도 있다.
- 이에 데이터 형태만 다른 두 개의 함수를 사용해야했다.
- 제네릭을 통해 구현하였으며, switch 문을 사용하기 위해 T의 제약조건을 Hashable로 두었다.
switch @unknown 키워드
- 탭이 충분히 추가될 가능성이 있기 때문에, unknown 키워드를 사용하고자 했다.
- 하지만 case가 정의된 것이 아니라, 정수형태를 사용했기 때문에 정의하지 못했다.
- 이를 위해 따로 case를 만들어야할지는 고민이 된다.
'TIL' 카테고리의 다른 글
OAuth 너 뭔데 ?? (0) | 2023.06.04 |
---|---|
[자료구조] Swift로 Heap 구현하기 (0) | 2023.03.23 |
코코아팟 라이브러리 만들고 배포하는 방법 (feat. SwiftUI) (1) | 2023.03.19 |
01/24 [TIL] Swift, 백준 문제풀이 (2) | 2023.01.24 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- CHR
- Swift
- 프로그래머스
- 반복문
- ord
- 정답
- 깃허브
- 코드업
- 리플릿
- baekjoon
- level1
- COMMIT
- 기초 100제
- 파이썬
- CodeUp
- 시간초과
- 레플릿
- 깃
- Code up
- 설명
- python
- SwiftUI
- replit
- 이것이 코딩테스트다
- 코드 업
- do while
- 백준
- for문
- 부르트포스
- 16진수 입력
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함