업무를 처리하다가 프로퍼티의 상황을 체크해야 하는 작업이 있었다. 프로퍼티 옵저버 프로퍼티 값이 설정될 때마다 옵저버가 호출된다. willSet은 값이 저장되기 직전에 호출된다. didSet은 값이 저장된 직후에 호출된다. 그래서 당연히 프로퍼티 옵저버를 사용해야지 하며 사용했다. 초기화하면서 당연히 여기서 프로퍼티 옵저버도 사용되겠지 하면서 사용했는데 초기화 시에는 옵저버가 호출되지 않았다. 그래서 뭐지 🤔이상하네 하면서 문서를 보니까 나만 몰랐던 내용이 적혀있었다. 또 찾아보니 프로퍼티 옵저버를 사용하기 위해서는 프로퍼티의 값이 반드시 초기화되어 있어야 한다고 나와있었다. 그렇기 때문에 클래스의 init()안에서 값을 할당할 때 didSet과 willSet이 호출되지 않았다. 생각해보니 옵저버가 관찰..
현재 진행하는 프로젝트에서 API 리퀘스트를 날려 받아온 데이터를 디코딩하고 넣어줍니다. 프로퍼티가 새로운 데이터가 들어옴을 감지하면 tableView를 리로드 시켜줍니다. 사실 스위프트에서는 그냥 프로퍼티 옵져버를 사용하는데요. 오브젝티브씨에서는 KVO key value observing이라는 친구가 있습니다. KVO는 오브젝트 값의 변화를 통지, 감시하기 위한 구조입니다. 특정 인스턴스의 특정 프로퍼티가 변화했을 때를 파악해 그에 맞는 처리를 할 수 있습니다. 위에서 오브젝트 값의 변화를 통지, 감시한다라고 했죠. KVO를 사용하려면 먼저 NSObject를 상속받아야 합니다. 즉 클래스여야 합니다. KVO를 그림으로 나타내자면 아래와 같은 흐름입니다. 이제 실제로 사용해봅시다. KVO로그를 찍기 위해..
- Total
- Today
- Yesterday
- ARC
- 책
- 책 후기
- Xcode
- 알고리즘
- 책 추천
- Algorithm
- ios
- 딥러닝
- RX
- Deep learning
- 독서
- swiftUI
- leetcode
- 문자열
- stanford SwiftUI
- ReactiveX
- objective-c
- 애니메이션
- objc
- 스위프트UI
- string
- swift5
- Animation
- 머신러닝
- SWIFT
- 스위프트
- iOS SwiftUI
- rxswift
- wwdc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |