일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- WWDC
- gesture
- state
- 최적화
- Network
- view
- iphone
- firebase
- async
- date
- Algorithm
- CS
- SwiftData
- UIKit
- auth
- combine
- authentication
- arkit
- swift
- Concurrency
- Animation
- 달력
- SwiftUI
- ios
- RxSwift
- withAnimation
- 알고리즘
- stateobject
- GCD
- dataflow
- Today
- Total
목록SwiftData (3)
XLOG

1. 문제 및 원인요즘 Swift6 의 concurrency와 관련된 checking 이 강화되면서 Non-sendable 과 관련된 경고를 많이 보곤한다.SwiftData 가 나오고 SwiftUI 에서 View 내부에서 query 를 직접 입력해서 View에 바로 적용할 수 있으나 기존 Repository Pattern 을 쓰던앱에 아키텍쳐를 준수하기 위해 ModelContext 접근을 단일 Thread 를 보장하기 위해 ModelActor 를 활용했고, 이를 Repository 에 주입하여 DTO 로 변환을 하면 되겠다고 단순하게 생각했다.import Foundationimport SwiftData@Modelpublic class SwiftDataItem { @Attribute(.unique) ..
1. 문제public enum TransactionType: String, Codable, CaseIterable, Sendable { case income = "income" case fixedExpense = "fixedExpense" case variableExpense = "variableExpense"}@Modelfinal class Category { @Attribute(.unique) var id: UUID var name: String var orderIndex: Int var transactionType: TransactionType var isActive: Bool @Relationship(deleteRule: .cascade, inver..

사이드 프로젝트를 진행하면서 Tree 형태의 데이터 구조를 만들어 사용했다.데이터는 SwiftData 를 사용해서 저장을 했으며 Model 은 Hashable 을 상속시켰다.그런데 데이터를 수정하고 나서 한번씩 Fatal error 가 발생했다.테스트를 더 해보긴 해야겠지만 찾아본 바로 원인은 Hashable을 충족하기 위해서 Equatable 또한 상속시켜야 한다. Hashable 이 Equatable 을 상속해야하는 이유는 HashValue 의 비교를 위해서인데, 여기서 내가 실수한 부분은 == 에 정의할 때 비교 연산을 Hash 함수에 사용한 Propertie 와 달라서 였다.예를 들면class Model { let id: UUID = UUID() let name: String let s..