값이 변하면 UI가 업데이트되어야 한다고 가정해봅시다. 그때 SwiftUI에서는 @State를 사용할 수 있습니다. SwiftUI는 State로 선언된 프로퍼티의 저장 공간을 관리합니다. SwiftUI에서 @State변수가 변경되면 뷰는 appearance를 무효화하고 body를 재계산합니다. 주어진 뷰에 대한 단일 소스로 사용합니다. State 인스턴스는 값 그 자체라는 것이 아니라 값의 읽기와 쓰는 수단입니다. 뷰의 본문 내부 또는 호출된 메서드에서만 프로퍼티에 접근해야 합니다. 뷰 클라이언트가 접근하지 못하도록 프로퍼티를 private으로 선언합니다. 어떤 스레드에서도 프로퍼티 상태를 변경하는 것은 안전합니다. 다른 뷰에 프로퍼티 상태를 전달하기 위해서 $와 변수 이름을 함께 사용해 프로퍼티 속성을..
lazy프로퍼티는 직접 사용할 때까지 계산되지 않습니다. sean allen님의 예제가 잘 표현되어 있어서 참고했습니다. 잘 표현된 예제 한번 보시죠. Player구조체가 있으며 name, team, position프로퍼티가 있고 lazy프로퍼티로 introduction이 있습니다. struct Player { var name: String var team: String var position: String lazy var introduction = { return "Now entering the game: \(name), \(position) for the \(team)" }() } var jordan = Player(name: "Michael Jordan", team: "Bulls", position..
프로퍼티는 컴파일러가 자동 생성하는 접근자 메서드를 제어할 때 사용 원자성 자동 생성된 접근자 메서드는 기본적으로 메서드가 원자적으로 동작하게 만드는 데 락을 포함한다. 속성을 nonatomic으로 하면 락이 사용되지 않는다. Atomic 속성이 없더라도 명시적으로 원헀을 경우를 대비해 컴파일 에러 없이 원자성이 적용된다. 스스로 접근자 메서드를 정의하는 경우는 메서드가 원자적으로 동작하도록 구현해야 한다. 읽기/쓰기 read/wrtie 게터 세터 모두 사용한다. 프로퍼티가 자동 생성될 경우 컴파일러는 두 메서드 모두 생성한다. readonly 게터만 사용한다. 그리고 컴파일러는 프로퍼티가 자동 생성될 때에만 게터를 생성한다. 프로퍼티를 외부에 일기 전용으로 공개하고 싶을 때 사용할 수 있으나 클래스 확..
- Total
- Today
- Yesterday
- Deep learning
- RX
- 책 후기
- 애니메이션
- 딥러닝
- ReactiveX
- 독서
- Animation
- stanford SwiftUI
- iOS SwiftUI
- 스위프트UI
- SWIFT
- swift5
- swiftUI
- leetcode
- 머신러닝
- ios
- objc
- wwdc
- 스위프트
- 문자열
- Xcode
- Algorithm
- objective-c
- ARC
- rxswift
- 책 추천
- 책
- 알고리즘
- string
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |