일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SWIFT
- uitableview
- ribs
- RxCocoa
- 리펙토링
- combine
- map
- 클린 코드
- ios
- 리펙터링
- Protocol
- rxswift
- Observable
- collectionview
- 스위프트
- uiscrollview
- Xcode
- swiftUI
- Clean Code
- UICollectionView
- 애니메이션
- swift documentation
- Refactoring
- clean architecture
- Human interface guide
- tableView
- HIG
- UITextView
- 리팩토링
- MVVM
- Today
- Total
목록메모리릭 (2)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/enGpwQ/btsd1ifUeMk/udTAvVkP53ZZkdhxIhx7b0/img.png)
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), ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cprfdu/btrVZMZ8Vao/JZi6E4GdJ4qabPKQZMfElk/img.png)
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..