SwiftUI MVVM ViewModel에서 Core Data 컨텍스트를 전달 / 가져 오는 방법은 무엇입니까?

중심지

문맥

Core Data 개체에서 작업을 수행하려면 관리 개체 컨텍스트 managedObjectContext가 필요합니다. 컨텍스트는 SceneDelegate"코어 데이터 사용"옵션이 선택된 상태에서 프로젝트가 생성 될 때 내부 환경 변수를 통해 뷰로 전달됩니다 (아래 참조). 관련 질문은 Core Data 컨텍스트 개체가 환경 변수를 통해 전달되어야하는 이유입니다.

let contentView = MainView().environment(\.managedObjectContext, context)

그러나 contextView Model 에 전달하려고 할 때 다음과 같은 불만이 있습니다.

속성 이니셜 라이저 내에서 인스턴스 멤버 'context'를 사용할 수 없습니다. 속성 이니셜 라이저는 'self'를 사용할 수 있기 전에 실행됩니다.

struct MainView: View {
    @Environment(\.managedObjectContext) var context
    
    // Computed property cannot be used because of the property wrapper
    @ObservedObject var viewModel = ViewModel(context: context)
}

class ViewModel: ObservableObject {
    var context: NSManagedObjectContext
}

init()뷰 내에서 뷰 모델을 초기화 하기 위해를 추가하면 빌드에 실패하는 다른 오류가 발생합니다.

표현에 대한 진단을 생성하지 못했습니다. 버그 신고를 해주세요

    init() {
        self.viewModel = ViewModel(context: context)
    }

질문

그렇다면 뷰 모델 내에서 컨텍스트를 어떻게 사용 / 가져 오기 / 전달할 수 있습니까? 뷰 모델 내에서 컨텍스트를 얻는 더 좋은 방법은 무엇입니까?

그의 성질

시나리오는 다음과 같습니다.

let contentView = MainView(context: context)          // << inject
        .environment(\.managedObjectContext, context)

struct MainView: View {
    @Environment(\.managedObjectContext) var context

    @ObservedObject private var viewModel: ViewModel // << declare

    init(context: NSManagedObjectContext) {
        self.viewModel = ViewModel(context: context)   // initialize
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

swiftui 메일 앱에서 제목 및 본문 텍스트를 전달하는 방법은 무엇입니까?

분류에서Dev

백그라운드에서 데이터 업데이트가있을 때 Core Data 컨텍스트를 관리하는 방법은 무엇입니까?

분류에서Dev

.Net Core의 컨트롤러 클래스에 Ajax Json 객체를 전달하는 방법은 무엇입니까?

분류에서Dev

Android의 GLSurfaceView에서 만든 OpenGL 컨텍스트를 가져 오는 방법은 무엇입니까?

분류에서Dev

패턴 전에 텍스트를 가져 오도록 RegEx를 개선하는 방법은 무엇입니까?

분류에서Dev

@namespace를 SwiftUI의 여러 뷰에 전달하는 방법은 무엇입니까?

분류에서Dev

Core Data에서 가져온 데이터를 필터링하는 방법은 무엇입니까?

분류에서Dev

IBM Watson. 노드에서 노드로 컨텍스트를 전달하는 방법은 무엇입니까?

분류에서Dev

Ember에서 전역 변수를 가져 오는 방법은 무엇입니까?

분류에서Dev

내 lineLimit가 SwiftUI에서 2에 도달하지 않으면 내 텍스트를 스택 상단에 정렬하는 방법은 무엇입니까?

분류에서Dev

SwiftUI에서 GeometryReader를 사용하여 텍스트 크기를 가져오고 읽을 수있는 방법은 무엇입니까?

분류에서Dev

목록 인수를 TCL 배열 가져 오기에 전달하는 방법은 무엇입니까?

분류에서Dev

다른 cpu pthread간에 openCL 컨텍스트를 전달하는 방법은 무엇입니까?

분류에서Dev

Ajax-양식에서 컨트롤러로 값 가져 오기를 전달하는 방법은 무엇입니까?

분류에서Dev

Core Data 컨텍스트 개체가 환경 변수를 통해 전달되어야하는 이유는 무엇입니까?

분류에서Dev

npm 스크립트에서 패키지 버전과 날짜를 가져 오는 방법은 무엇입니까?

분류에서Dev

쉘 스크립트에서 이전 날짜의 데이터를 가져 오는 방법은 무엇입니까?

분류에서Dev

텍스트 파일에서 세그먼트를 가져 오는 가장 좋은 방법은 무엇입니까?

분류에서Dev

가장 가까운 특정 요소에서 텍스트를 가져 오는 방법은 무엇입니까?

분류에서Dev

rvalue 참조 매개 변수를 가져 와서 다른 곳에 전달하는 방법은 무엇입니까?

분류에서Dev

SwiftUI에서 EnvironmentObject의 값을 클래스 인스턴스로 전달하는 방법은 무엇입니까?

분류에서Dev

CSOM (클라이언트 컨텍스트)을 사용하여 SharePoint 2013에서 GetItemsWithUniquePermissions 개수를 가져 오는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Qualtrics : 이전 페이지에서 Embedded Data에 저장된 값을 가져 오는 방법은 무엇입니까?

분류에서Dev

UI 자동화를 사용하여 ListView 또는 유사한 컨트롤에서 텍스트를 가져 오는 방법은 무엇입니까?

분류에서Dev

Kohana-컨트롤러간에 ORM 개체를 전달하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

SwiftUI에서 ViewBuilder 클로저로 데이터를 전달하는 올바른 방법은 무엇입니까?

분류에서Dev

SwiftUI에서 목록의 일부로 View ()를 전달하는 방법은 무엇입니까?

분류에서Dev

ASP.NET Core의 Main () 내부에서 환경 변수를 가져 오는 방법은 무엇입니까?

분류에서Dev

공급자 (C # .NET Core 콘솔 앱)에서 Args를 가져 오는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    swiftui 메일 앱에서 제목 및 본문 텍스트를 전달하는 방법은 무엇입니까?

  2. 2

    백그라운드에서 데이터 업데이트가있을 때 Core Data 컨텍스트를 관리하는 방법은 무엇입니까?

  3. 3

    .Net Core의 컨트롤러 클래스에 Ajax Json 객체를 전달하는 방법은 무엇입니까?

  4. 4

    Android의 GLSurfaceView에서 만든 OpenGL 컨텍스트를 가져 오는 방법은 무엇입니까?

  5. 5

    패턴 전에 텍스트를 가져 오도록 RegEx를 개선하는 방법은 무엇입니까?

  6. 6

    @namespace를 SwiftUI의 여러 뷰에 전달하는 방법은 무엇입니까?

  7. 7

    Core Data에서 가져온 데이터를 필터링하는 방법은 무엇입니까?

  8. 8

    IBM Watson. 노드에서 노드로 컨텍스트를 전달하는 방법은 무엇입니까?

  9. 9

    Ember에서 전역 변수를 가져 오는 방법은 무엇입니까?

  10. 10

    내 lineLimit가 SwiftUI에서 2에 도달하지 않으면 내 텍스트를 스택 상단에 정렬하는 방법은 무엇입니까?

  11. 11

    SwiftUI에서 GeometryReader를 사용하여 텍스트 크기를 가져오고 읽을 수있는 방법은 무엇입니까?

  12. 12

    목록 인수를 TCL 배열 가져 오기에 전달하는 방법은 무엇입니까?

  13. 13

    다른 cpu pthread간에 openCL 컨텍스트를 전달하는 방법은 무엇입니까?

  14. 14

    Ajax-양식에서 컨트롤러로 값 가져 오기를 전달하는 방법은 무엇입니까?

  15. 15

    Core Data 컨텍스트 개체가 환경 변수를 통해 전달되어야하는 이유는 무엇입니까?

  16. 16

    npm 스크립트에서 패키지 버전과 날짜를 가져 오는 방법은 무엇입니까?

  17. 17

    쉘 스크립트에서 이전 날짜의 데이터를 가져 오는 방법은 무엇입니까?

  18. 18

    텍스트 파일에서 세그먼트를 가져 오는 가장 좋은 방법은 무엇입니까?

  19. 19

    가장 가까운 특정 요소에서 텍스트를 가져 오는 방법은 무엇입니까?

  20. 20

    rvalue 참조 매개 변수를 가져 와서 다른 곳에 전달하는 방법은 무엇입니까?

  21. 21

    SwiftUI에서 EnvironmentObject의 값을 클래스 인스턴스로 전달하는 방법은 무엇입니까?

  22. 22

    CSOM (클라이언트 컨텍스트)을 사용하여 SharePoint 2013에서 GetItemsWithUniquePermissions 개수를 가져 오는 가장 좋은 방법은 무엇입니까?

  23. 23

    Qualtrics : 이전 페이지에서 Embedded Data에 저장된 값을 가져 오는 방법은 무엇입니까?

  24. 24

    UI 자동화를 사용하여 ListView 또는 유사한 컨트롤에서 텍스트를 가져 오는 방법은 무엇입니까?

  25. 25

    Kohana-컨트롤러간에 ORM 개체를 전달하는 가장 좋은 방법은 무엇입니까?

  26. 26

    SwiftUI에서 ViewBuilder 클로저로 데이터를 전달하는 올바른 방법은 무엇입니까?

  27. 27

    SwiftUI에서 목록의 일부로 View ()를 전달하는 방법은 무엇입니까?

  28. 28

    ASP.NET Core의 Main () 내부에서 환경 변수를 가져 오는 방법은 무엇입니까?

  29. 29

    공급자 (C # .NET Core 콘솔 앱)에서 Args를 가져 오는 방법은 무엇입니까?

뜨겁다태그

보관