일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- map
- Observable
- 리펙토링
- Protocol
- UICollectionView
- Refactoring
- Xcode
- 스위프트
- swiftUI
- 리팩토링
- 클린 코드
- HIG
- SWIFT
- Human interface guide
- clean architecture
- 리펙터링
- combine
- MVVM
- UITextView
- ios
- rxswift
- swift documentation
- RxCocoa
- uitableview
- ribs
- tableView
- uiscrollview
- collectionview
- Clean Code
- 애니메이션
- Today
- Total
목록@Published (4)
김종권의 iOS 앱 개발 알아가기
ObservableObjec, @Published, objectWillChanged 개념ObservableObject는 옵저빙 될 수 있는 모델을 의미옵저빙 된다는 의미는 값이 변경되었을때, 이 모델을 옵저빙하고 있는 대상에게 알림을 주는 것변경된다는 기준은 @Publihsed 키워드로 선언된 프로퍼티가 변경되었을때 알림을 줌@Published를 사용하면 objectWillChanged라는 내부 프로퍼티에 send()를 날리는 것과 동일class User: ObservableObject { let name = "name" /// @Published: 변경되었다는 기준이 될 property에 선언 @Published var score = 0 /* objectWil..
목차) SwiftUI의 기본 - 목차 링크 * @Published, @objecervableObject 개념은 Combine이므로, Combine 관련 이전 포스팅 글 참고 @ObservedObejct 란? observable 객체를 구독하는 property wrapper observable 객체가 변경되면 뷰에 업데이트 시켜주는 기능 내부 코드 @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) @propertyWrapper @frozen public struct ObservedObject : DynamicProperty where ObjectType : ObservableObject { @dynamicMemberLookup @frozen pub..
목차) Combine - 목차 링크 @Published propertyWrapper 형태이며 내부적으로 didSet에서 이벤트 방출하는 역할 @propertyWrapper public struct Published 사용하는 쪽에서는 $ 기호를 이용하여 projectedValue에 접근 propertyWrapper의 projectedValue 개념은 이 포스팅 글 참고 final class MyData { @Published var number: Int init(number: Int) { self.number = number } } let data = MyData(number: 20) data.$number .sink { print("change value? = \($0)") } data.number = ..
@State View를 상속받는 뷰에서, 값을 변경할때 사용하는 프로퍼티 어노테이션 @State var n = 0 내부 구현부는 propertyWrapper를 사용한 형태 ex) @State를 붙이지 않은 경우 컴파일 에러 발생 struct ContentView: View { var n = 0 var body: some View { VStack { Text("\(n)") Button("Tap!!") { n += 1 // Error: Left side of mutating operator isn't mutable: 'self' is immutable } } } } ex) @State를 프로퍼티 앞에 붙일 경우 컴파일 에러 해결 struct ContentView: View { @State var n = 0 //