Xcode 13.2 로 iOS 15를 빌드했을 때, 발생하는 문제이다. (iOS 14 이하에서는 발생안함) # 이슈 cell을 토글하면 isSelected가 잘 토글되고 아래 코드도 잘 동작한다. class SomeCollectionViewCell: UICollectionViewCell { override var isSelected: Bool { willSet { if newValue { self.backgroundColor = .red } else { self.backgroundColor = .gray } } } ... } 하지만 사용자의 액션이 아니라 코드로 직접 isSelected 값을 바꾸면 순간적으로는 코드로 세팅해줬던 값으로 바뀌지만, 이전의 isSelected 값으로 다시 원복된다. 디버깅해..
Swift Docs > Concurrency 의 내용을 요약한 글로, 더 자세한 내용은 Meet Swift Concurrency 를 참고하시길 추천드립니다. [ 요약 ] # 개념 ✔️ Asynchronous Function - 일시중단될 수 있으며 그동안 다른 비동기 함수가 해당 스레드에서 실행될 수 있음. ✔️ Asynchronous Sequence - collection의 element를 하나씩 기다릴 수 있음. with for-await-loop ✔️ Asynchronous Function in parallel - 순차적 진행이 아니라 아니라 병렬로 작업을 진행할 수 있음. with async-let ✔️ Tasks and Task Groups - 비동기 코드의 우선순위, 취소 처리에 대해 더 많이..
Swift Docs > Strings and Characters 에 나오는 Unicode 관련 내용 입니다. (순서를 조금 재구성하였습니다) # Unicode Swift의 String과 Character는 유니코드를 완벽하게 준수합니다. 또한 세가지 유니코드 표현 (또는 문자열 인코딩) 에 접근할 수 있는 프로퍼티를 제공합니다. 1. UTF-8 Representation - A collection of UTF-8 code units - utf8 property 로 접근 가능. 프로퍼티 타입은 UTF8View (= collection of unsigned 8-bit (UInt8) values) 2. UTF-16 Representation - A collection of UTF-16 code units - ..
Swift Docs > Strings and Characters > Substring 에 나오는 내용입니다. 애플이 String 연산이 살짝 귀찮아질 것을 감수하고 왜 Substring 타입을 따로 만들었는 지 알 수 있는 내용이여서 좋았습니다! # Substring subscript 또는 prefix method를 이용해서 string의 substring을 구하면 그 타입은 string이 아니라 Substring 입니다. String과 Substring은 둘다 StringProtocol 을 conform 하고 있기 때문에 string에서 쓰던 same methods들을 substring에서도 대부분 사용할 수 있습니다. 즉 substring를 string과 거의 동일한 방식으로 사용할 수 있습니다. S..
% 연산을 할 때, negative 값이 있는 경우 언어마다 결과가 다르다는 것을 발견했습니다,, # Swift 보통 다른 언어에서는 %를 modulo operator 라고 부르는데, Swift 에서는 remainder operator 라고 부릅니다. Swift 에서 음수에 대한 동작은 엄밀히 말하면 modulo 연산보다 나머지 연산에 가까워서 remainder operator 라고 부른다고 하네요. (참고: Swift Docs) a % b 일 때, % operator 는 아래의 식으로 나머지를 계산합니다. a = (b x some multiplier) + remainder 1) 9 % 4 9 = (4 x 2) + 1 이므로 결과는 1 2) -9 % 4 -9 = (4 x -2) + -1 이므로 결과는 -..
Swift Docs > The Basics > Assertions and Preconditions 에 있는 내용을 토대로 한 글입니다! # Assertions 과 preconditions 용도 Assertions 와 preconditions 은 런타임에 체크됩니다. futher code 를 실행시키기 전에 essential condition 을 만족시켰는 지 검증하는 용도로 사용할 수 있습니다. assertion 또는 precondition 의 조건이 true 면 코드는 계속 실행되고false 면 현재 프로그램 상태가 invalid 하다고 판단되어서 코드 실행이 멈추고 앱이 종료됩니다. Assertion은 개발 중에 실수나 잘못된 가정을 찾는 데 도움이 되고preconditions는 produ..
# Strong Subview Reference Type 1 class ViewController: UIViewController { private let someView: SomeView = SomeView() override func viewDidLoad() { super.viewDidLoad() self.setupSomeView() } private func setupSomeView() { self.view.addSubview(someView) self.someView.snp.makeConstraints { maker in maker.width.height.equalTo(50) maker.center.equalToSuperview() } } } Type 2 class ViewController: U..
이 글은 제가 몰랐거나 자주 까먹는 단축키들만 모을 예정으로 더 많은 단축키를 보고 싶다면 이 글을 추천합니다~ [1] 중복커서 (Option + Drag) Fast Campus > 슈퍼앱 강의를 듣다가 알게 된 것인데, Option 누르고 드래그를 하면 커서를 중복으로 만들 수 있다. 아래 예제 (출처: 강의에서 나오는 예제) 처럼 여러 프로퍼티에 public 을 붙일 때 유용하게 사용 가능하다!! (그동안 하나씩 해줬는데 ㅠㅠㅠ 감동) [2] MiniMap 토글 (Control + Shift + Command + M) 코드 라인 수가 많은 파일을 볼 때 유용한 미니맵. Xcode 의 저부분을 눌러서 토글할 수 있지만 단축키로 편하게 할 수 도 있다. 코드를 작성하거나 라인 수가 적은 코드를 볼 경우,..
Self vs self - what's the difference? 에 대해서는 대충 알고 있었지만, 예전에 iOS Test-Driven Development by Tutorials (raywenderlich) 를 보다가 샘플코드 중, 이런 식으로 되어있는 것을 보고 좀 헷갈려서 Self Type 문서를 봐야지~~ 했는데 이제야 봅니다,,, https://docs.swift.org/swift-book/ReferenceManual/Types.html#grammar_self-type Types — The Swift Programming Language (Swift 5.5) Types In Swift, there are two kinds of types: named types and compound types..
[ 처음 Coordinator를 제안하신 분의 글 ] https://khanlou.com/2015/01/the-coordinator/ Khanlou | The Coordinator January 20, 2015 The Coordinator One of the biggest problems with the big view controllers is that they entangle your flow logic, view logic, and business logic. When a table cell is selected, that delegate method typically looks like this: - (void)tableVi khanlou.com https://khanlou.com/2015/10/..
- Total
- Today
- Yesterday
- Django Firebase Cloud Messaging
- drf custom error
- 장고 Custom Management Command
- github actions
- PencilKit
- flutter 앱 출시
- 플러터 얼럿
- 플러터 싱글톤
- DRF APIException
- flutter build mode
- METAL
- Flutter Clipboard
- 구글 Geocoding API
- Django Heroku Scheduler
- Watch App for iOS App vs Watch App
- SerializerMethodField
- ipad multitasking
- Flutter Text Gradient
- Flutter 로딩
- Django FCM
- Dart Factory
- flutter deep link
- Python Type Hint
- flutter dynamic link
- Sketch 누끼
- ribs
- cocoapod
- 장고 URL querystring
- Flutter getter setter
- Flutter Spacer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |