일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MVVM
- 스위프트
- Protocol
- Human interface guide
- rxswift
- SWIFT
- UITextView
- map
- 리펙터링
- RxCocoa
- 리펙토링
- UICollectionView
- clean architecture
- collectionview
- tableView
- 리팩토링
- Xcode
- uitableview
- ribs
- 애니메이션
- HIG
- Observable
- Clean Code
- ios
- swiftUI
- uiscrollview
- combine
- swift documentation
- 클린 코드
- Refactoring
- Today
- Total
목록메모리릭 (2)
김종권의 iOS 앱 개발 알아가기
UIStackView의 removeArrangedSubview 보통 UIStackView의 하위 뷰들을 제거할때 removeArrangedSubview를 통해 제거하는데, 이렇게만하면 memory leak이 발생 subviews에 접근하여 명시적으로 해당 뷰에서 removeFromSuperview()를 호출해줘야 제거가됨 ex) 메모리 릭 확인을 위해, 메모리에서 해제된경우 deinit에서 print문을 호출하는 뷰 정의 class MyView: UIView { init() { super.init(frame: .zero) backgroundColor = .yellow NSLayoutConstraint.activate([ heightAnchor.constraint(equalToConstant: 200), ..
Lazy var 클로저 사용시 주의사항 lazy var 클로저 사용 시 retain cycle이 발생하는지? 아래 1)번과 2)번 구분 (아래에서 계속) 1) private let text = "label" private lazy var label: () -> UILabel = { let label = UILabel() label.text = self.text // self를 안쓰면 컴파일에러 발생 label.translatesAutoresizingMaskIntoConstraints = false return label } 2) private let text = "label" private lazy var label: UILabel = { let label = UILabel() label.text = t..