일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Clean Code
- MVVM
- Xcode
- SWIFT
- rxswift
- 리펙토링
- Human interface guide
- swiftUI
- collectionview
- 클린 코드
- HIG
- map
- uitableview
- 애니메이션
- Protocol
- Observable
- clean architecture
- uiscrollview
- combine
- RxCocoa
- 리펙터링
- 스위프트
- ios
- UITextView
- tableView
- swift documentation
- UICollectionView
- ribs
- Refactoring
- 리팩토링
- Today
- Total
목록ObservableObject (5)
김종권의 iOS 앱 개발 알아가기
뷰 데이터 넘기기parentView -> childView 데이터를 넘겨주는 방법1) @State와 Binding으로 넘겨주기 (양방향 바인딩)2) EnvironmentObject를 사용하여 넘겨주기 (양방향 바인딩)1) @State와 Binding으로 넘겨주기@State 프로퍼리를 부모 뷰에 놓고, 달러 $를 붙여서 자식 뷰에 Binding 형태 프로퍼티를 넘겨주기양방향 바인딩ChildView에서 childText를 변경하면 parentText도 같이 변경되고, parentText가 변경되면 childText도 변경됨struct ContentView: View { @State private var parentText = "parent_text" var body: some View { ..
@ObservedObject 사용 요건ObservableObject 모델을 사용할 때 아래 에러를 마주치는 경우가 존재바로 @ObservedObject를 선언한 프로퍼티는 프로토콜이 아닌 구체적인 타입을 사용해야함struct ContentView: View { // error: Type 'any Personable' cannot conform to 'ObservableObject' @ObservedObject var person: Personable var body: some View { HStack { } }}protocol Personable where Self: ObservableObject { var name: String { get }..
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 = ..