일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Git Large File Storage
- ios
- Apple Certificate
- Dependency Rule
- swiftdocs
- Github file size
- Automatically manage signing
- Ribs
- coordinateSpace
- RxCocoa
- rib
- RxSwift
- memory safety
- Large File Storage
- App Signing
- 로버트마틴형
- SWIFT
- Concurrent
- Dispatch.main.sync
- 메모리 접근 충돌
- iOS Target
- conflicting access to memory
- 클린아키텍쳐
- 잡초가득블로그
- RIBs Tutorial
- in-out
- windowScene
- 대머리깃허브
- iOS 버전 점유율
- UICoordinateSpace
- Today
- Total
목록개발/iOS (55)
빙수왕의 개발일지
일단 프로젝트를 만들고, gitignore을 추가하고, 가장 먼저 정한 것은 타겟이다. 이런저런 소스를 작성할 때, 제공할 유저 타겟 최소버전을 명확하게 정해놔야 추후에 수정할 일이 없을 것 같았기 때문이다. Apple Store 지원에 따르면, 지금 iPhone 기기의 약 93%가 iOS 13 이상의 버전을 사용하고 있다고 한다. Deployment Target을 iOS 13으로 하면 7%를 커버하지 못하겠지만, 내가 만들 앱이 꼭 모든 버전 사람들에게 서비스를 제공해야만 하는 그런 류의 서비스(금융앱이라던지... )는 당연히 아니므로 그냥 속편하게 iOS 13으로 정했다. 아래 사이트를 참고하여 정했다. https://developer.apple.com/kr/support/app-store/ App ..
Memory Safety 기본적으로, Swift는 코드에서 안전하지 않은 동작이 발생하는걸 방지해준다. 예를들어, Swift는 변수를 사용하기 전에 초기화하도록 하고, 할당 해제(dellocated)후 메모리에 접근하지 않도록 하며, Array indices에서 out-of-bounds error가 있는지 확인한다. → 변수 초기화를 안하면 컴파일 오류를 낸다던가, 해제된 메모리에 접근하거나 array out of index 에러 발생 시 런타임에 오류가 떨어지는 것을 말하는듯 하다. Swift는 또한 동일한 메모리에 대한 다중 접근이 충돌(conflict)하지 않도록 한다. 어떻게? 메모리의 location을 수정하는 코드가 그 메모리에 단독으로 접근할 수 있도록 하는 방법으로. → 메모리의 위치를 수..
Swift Docs를 기반으로 이해한 내용을 작성하였습니다. In-Out Parameters 함수 파라미터는 default가 상수이다. 상수이므로, 함수 parameter의 값을 함수의 body 안에서 바꾸려고 하면 compile-time 에러가 발생. parameter의 값을 변경하고 싶다면, 그리고 이 변경이 함수 호출이 끝나고도 지속되길 원한다면, 파라미터를 in-out parameter로 만들어라. in-out 키워드는 parameter 앞에 배치하여 사용한다. in-out 매개변수에는 함수에 전달되고, 함수에 의해 수정되고, 원래 값을 대체하기 위해 함수 외부로 다시 전달되는 값이 있다. 상수나 문자(literal value)는 argument(전달인자)로 사용될 수 없다. (수정할 수 없는 값..
문제상황 한 tableView 안에서 어떤 상태 flag 값에 따라 셀 class와 뿌려지는 내용(리스트)를 바꾸고 싶었다. -> 다시 바인드를 했다. -> 오류가 났음! 오류 내용 Maybe delegate was already set in xib or storyboard and now it's being overwritten in code. 해결방안 dataSource와 delegate를 초기화시킨 후 다시 bind해줘야 한다. tableView.delegate = nil tableView.dataSource = nil 수정 전 코드 수정 후 코드 중복으로 붙여넣었지만.. 아무튼 중요한건 bind를 다시 해주기 전, delegate와 dataSource에 nil을 넣어줘야 한다는 것이다. 출저 htt..
Targets - Build Settings - Info.plist File 경로를 수정해주자. 수정 전 이동한 경로: App/Info.plist 수정 후
자꾸 찾아보기 힘들어서 표로 정리해야겠따.. 제가 아는 선에서 정리했으므로,, 내용이 부족하거나 생략됐을 수 있습니다. 클래스 생성 구독 방출 특징 Observable in RxSwift = create() Operators(just, ...) * 어딘가 property로 저장했을 때 default값 아래처럼 가능 let items: Observable = Observable([]) subscribe -> Disposable bind(to: A) * A는 Binder 불가 - 뇌가 없어서 방출을 원할 때 할 수 없다. Subject in RxSwift = PublishSubject() = BehaviorSubject(value = 기본값) ... subscribe bind(to: A) * A는 Binde..
상황: 남의 소스를 풀받아서 Breakpoint를 걸고 Run 했는데 디버깅이 걸리지 않았음. 해결방안: Product - Scheme - Edit Scheme Run 탭 선택 후 Executable 아래 Debug executable이 체크되어있는지 확인한다. 체크되어있어야 디버깅 된다.
4가지 방법이 있다. 출처 https://github.com/RxSwiftCommunity/RxDataSources RxSwiftCommunity/RxDataSources UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...) - RxSwiftCommunity/RxDataSources github.com 각각 언제 사용하는가? 1) rx.items(dataSource:protocol) - 아직 안써봄. dataSource를 넣어주는걸 봐선 아주 세밀한 커스텀(?)이 필요할 때 쓰일 것 같다. 2) rx.items(cellIdentifier:String) - cell 커스텀 클래스를 ..