We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
강한 참조는 default로 설정되어 있음
약한 참조와 미소유 참조는 RC의 숫자가 올라가지 않게 함
weak 키워드 사용
weak는 nil이 자동으로 할당이 됨
unowned 키워드 사용
unowned는 Swift 버전 5이후, 옵셔널로 선언하는 것이 가능해졌지만 nil이 자동으로 할당되지 않음
따라서 실제 인스턴스가 해제 되었다면 에러가 발생
input.didAfterAddButtonTapped .emit(onNext: { [weak self] in guard let self = self else { return } self.isAfterButtonHidden.accept(!self.isAfterButtonHidden.value) }) .disposed(by: disposeBag)
[weak self] 를 통해 순환 참조를 방지하였음
[weak self]
weak self를 사용하면 자동으로 nil이 할당되므로
weak self
guard let self = self else { return } 자동으로 nil값을 벗겨줌
guard let self = self else { return }
[unowend self]의 사용을 지양하는 이유는 위의 그림을 살펴보면 됨
MyViewController Deinit -> DisposeBag Deinit -> Disposable Dispose -> Observable Deinit
순서로 실행이 되는데 MyViewController의 Deinit과 Observable의 Deinit사이에는 약간의 시간차이가 존재함
이 사이에 Observable에서 MyViewController를 참조하는 행위가 발생하게 되면
크러쉬가 발생할 가능성이 있기 때문에 unowned self를 지양한다고 함
++ 예시는 부가적인 것이므로 키워드의 내용만 숙지하면 됨 !
The text was updated successfully, but these errors were encountered:
seungchan2
No branches or pull requests
강한 참조는 default로 설정되어 있음
약한 참조와 미소유 참조는 RC의 숫자가 올라가지 않게 함
약한 참조
weak 키워드 사용
weak는 nil이 자동으로 할당이 됨
미소유 참조
unowned 키워드 사용
unowned는 Swift 버전 5이후, 옵셔널로 선언하는 것이 가능해졌지만 nil이 자동으로 할당되지 않음
따라서 실제 인스턴스가 해제 되었다면 에러가 발생
[weak self]
를 통해 순환 참조를 방지하였음weak self
를 사용하면 자동으로 nil이 할당되므로guard let self = self else { return }
자동으로 nil값을 벗겨줌[unowend self]의 사용을 지양하는 이유는 위의 그림을 살펴보면 됨
MyViewController Deinit -> DisposeBag Deinit -> Disposable Dispose -> Observable Deinit
순서로 실행이 되는데 MyViewController의 Deinit과 Observable의 Deinit사이에는 약간의 시간차이가 존재함
이 사이에 Observable에서 MyViewController를 참조하는 행위가 발생하게 되면
크러쉬가 발생할 가능성이 있기 때문에 unowned self를 지양한다고 함
++ 예시는 부가적인 것이므로 키워드의 내용만 숙지하면 됨 !
The text was updated successfully, but these errors were encountered: