일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- collectionview
- swiftUI
- 애니메이션
- RxCocoa
- uiscrollview
- 리팩토링
- uitableview
- ios
- Observable
- 리펙토링
- 스위프트
- HIG
- Clean Code
- rxswift
- Protocol
- SWIFT
- 리펙터링
- Xcode
- swift documentation
- ribs
- map
- tableView
- combine
- Human interface guide
- UICollectionView
- UITextView
- Refactoring
- MVVM
- 클린 코드
- clean architecture
- Today
- Total
목록objc_setAssociatedObject (4)
김종권의 iOS 앱 개발 알아가기
AssociatedObject 생명주기 AssociatedObject를 사용하면 extension에도 stored property 처럼 표현이 가능한데, ARC에 의하여 참조 카운트가 0이되면 자동으로 AssociatedObject도 사라지는것인가? AssociatedObject를 사용하여 extension에 stored property 추가 방법은 이전 포스팅 글 참고 ex) AssociatedObject extension UIScrollView { var lastOffsetY: CGFloat { get { (objc_getAssociatedObject(self, &AssociatedKeys.lastOffsetY) as? CGFloat) ?? 0.0 } set { objc_setAssociatedObj..
extension에서의 stored property extension에서는 stored property 선언이 불가능 불가능한 이유? 만약 가능하다면 Int와 같은곳에도 String같은 값을 stored property로 추가할수 있게되어, Int의 본질적인 상태(메모리 크기, 역할)을 extension으로 어디에서든지 변경하여 예측불가능한 코드가 될 수 있으므로 애초에 extension에서 stored property선언을 막은 것 AssociatedObject를 사용한 프로퍼티 추가 objective c에서 제공했던 setter, getter를 사용하여 swift의 extension에도 stored property 추가가 가능 정확히는 computed proprety를 만들지만, get, set할 때..
일반적인 UIButton의 action 처리 방법 UIButton의 인스턴스 메소드인 addTarge(_:action:for:)를 사용하여 처리 단점은 button의 addTarget하는 부분에서 특정 지역변수에 대한 기능을 touchUpInside 액션 시 동작하게 하기 어려운 점이 존재 아래 abc 지역 프로퍼티를 button의 touchUpInside될 때 출력하고 싶어도 어려운 상태 button의 클로저로 만들면? (아래에서 계속) class ViewController: UIViewController { private let button = UIButton() override func viewDidLoad() { super.viewDidLoad() let abc = 123 button.transl..
objc_setAssociatedObject, objc_getAssociatedObject key-value 쌍으로 특정 값을 저장하여 사용 extension에서는 stored property를 지정하지 못하지만, 이 AssociatedObject를 사용하면 stored property처럼 따로 프로퍼티를 추가하고 접근도 가능 AssociatedObject 주요 메소드 객체를 저장하는 메소드 // https://developer.apple.com/documentation/objectivec/1418509-objc_setassociatedobject func objc_setAssociatedObject( _ object: Any, _ key: UnsafeRawPointer, _ value: Any?, _ ..