Let 'package' is not concurrency-safe because non-'Sendable' type 'Package' may have shared mutable state
·
SwiftUI/에러해결
해결방법@preconcurrency import PackageDescriptionimport 앞에 @preconcurrency 추가하기
SwiftUI - ViewModel에서 Model 값이 바뀌지 않을 때 (@Published)
·
SwiftUI/에러해결
SwiftUI는 @Published로 선언된 프로퍼티의 변경 사항만 감지합니다. socketModel이 일반 속성이라면 뷰가 업데이트되지 않을 수 있습니다. 변경 안됐던 코드self?.socketModel?.allRoomInfo = rooms 변경된 코드self?.socketModel = SocketModel(type: .createResponse, allRoomInfo: rooms)
(WatchOS, CloudKit) Bad Container" (1014); "Couldn't get container configuration from the server for container when trying to use the default container.
·
SwiftUI/에러해결
Xcode 11.1 이전에는 기본 default() 컨테이너로 접근이 가능했지만 11.1 부터는 직접 identifier 로 구분하여 인스턴스를 만들어야 합니다let publicDatabase = container.default().publicCloudDatabase 다음은 컨테이너의 이름을 직접 사용하여 인스턴스를 만들었으며 이렇게 하면 에러가 해결됩니다.let publicDatabase = CKContainer(identifier: Constants.containerIdentifier).publicCloudDatabase
SwiftData - A default value requires a fully qualified domain named value, Model 프로퍼티에 Enum 사용하기
·
SwiftUI/에러해결
Enum 타입의 변수를 만들어 사용하려 했지만A default value requires a fully qualified domain named value 에러가 발생하였습니다. 해결방법은 바로 타입을 Category 으로 선언하였지만 이후 값에서도 어떤 Enum 인지 직접적으로 명시해줘야 합니다.@Modelclass Quote: Decodable, Identifiable { var id: UUID = UUID() var quote: String = "" var author: String = "" var category: Category = Category.unknown
SwiftData - FetchDescriptor 에러 (Cannot convert value of type 'PredicateExpressions.Equal<...
·
SwiftUI/에러해결
Cannot convert value of type 'PredicateExpressions.Equal, UUID>, PredicateExpressions.KeyPath, UUID>>' to closure result type 'any StandardPredicateExpression'에러가 발생하였습니다.  문제가 발생한 이유는 Predicate 내부에서 다른 모델 객체를 참조하는 것은 불가능하기 때문입니다.위에 코드에서는 quote.id 를 통해서 quote 모델 객체의 id 를 참조하고 있으므로 문제가 발생합니다.predicate: #Predicate { $0.id == quote.id } 그렇기 때문에 단순히 Predicate 외부에 참조할 객체의 변수를 담아 다음과 같이 문제를 해결할 수 있습니다..
SwiftUI - onChange 클로저 내부로 값 변경, 관찰 변경 안될 때
·
SwiftUI/에러해결
SwiftUI 에서는 onChange 를 제공하여 특정 값의 변화를 감지할 수 있습니다  문제 발생이번에는 지도에서 특정 값이 변경되었을 때 sheet를 올라오게 만들기 위해서 onChange 내부에 isPresented 프로퍼티 값을 변경시키도록 코드를 만들었으나 showDetails의 값이 변경되었음에도 불구하고 sheet 가 올라오지 않는 문제를 발견하였습니다. 문제가 되는 코드를 먼저 살펴보겠습니다. 다음은 mapState의 selectedResult 값이 변경되었으면 showDetails 라는 값을 변경시켜 sheet 를 올려보내려는 코드입니다..onChange(of: mapState.selectedResult, { oldValue, newValue in if newValue != nil ..
ytw_developer