일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 책 추천
- 딥러닝
- ios
- 알고리즘
- 독서
- Xcode
- objective-c
- rxswift
- 머신러닝
- iOS SwiftUI
- 애니메이션
- 책 후기
- stanford SwiftUI
- leetcode
- 문자열
- wwdc
- 스위프트UI
- Animation
- 책
- swift5
- SWIFT
- ReactiveX
- Deep learning
- string
- swiftUI
- RX
- Algorithm
- 스위프트
- objc
- ARC
- Today
- Total
목록delegate (2)
THIS IS ELLIE
다 객체간의 소통을 할 수 있다는 공통점을 가진다. 세 패턴 모두 특정 이벤트가 일어나면 원하는 객체에 알려주어 해당되는 처리를 하는 방법을 가지고 있다. 하지만 한 객체는 그 자체로 존재하면서 소통하고 싶을 뿐 다른 객체에 종속되어 동작하는 것은 재사용성과 독립된 기능요소 측면에서 볼 때 바람직하지 않다. - 클로저 함수의 인자로 클로저가 들어가면 함수는 자신의 코드 내에서 언제든 자신의 인자인 클로저를 부를 수 있게 된다. 이런 구조를 활용하면 함수가 자신의 작업을 모두 완료된 후 클로저를 호출하도록 한다면 async에서 작업이 완료된 시점을 인식하고 처리할 수 있게 된다. - 델리게이트 대상 객체가 누군지 알 수 있을때 사용한다. MVC디자인 패턴 구조에서 View가 Controller에게 말을 걸..
Q delegate는 왜 Weak로 선언할까요? A Retain cycle 을 피하기 위해서! 기본적으로 클래스의 객체를 가리키는 각각의 reference는 강함 참조(strong)입니다.두 클래스 인스턴스가 서로 강한 참조를 하게 되면 그것이 Retain Cycle이 됩니다. 서로 강한 참조를 하고 있으면 사용하지 않는데도 deinit 되지 않습니다. 만약에 객체에 대한 강한 참조가 존재하지 않는다면 메모리에서 자동으로 해제됩니다.weak로 선언한다면 강한 참조가 되지 않아 객체의 메모리가 해제되면 자동으로 nil이 될 것입니다. Retain Cycle은 delegate에서는 흔하게 발생합니다. 그래서 delegate를 사용할 땐 대부분의 상황에 weak로 선언합니다.UITableViewDelegate..