저는 SWIFT 프로그래밍에 익숙하지 않고 핵심 데이터를 사용하고 앱에 표시하기 위해 바인딩하는 간단한 앱을 배우려고합니다. 많은 예제를 살펴 보았지만 모두 오래된 것으로 보입니다. 나는 XCode 9에서 일하고있다.어레이 컨트롤러를 코어 데이터 모델에 어떻게 바인드합니까?
코어 데이터가있는 MacOS 코코아 애플리케이션으로 시작했다. 나는 날짜, 초, 스포츠 및 rpe의 4 가지 속성을 가진 "Workout"이라는 간단한 엔티티를 가지고 있습니다.
그런 다음보기 컨트롤러 장면 아래에 배열 컨트롤러를 추가했습니다. 어레이 컨트롤러를 데이터 소스로 설정 한 테이블보기를 추가했습니다. 배열 컨트롤러에 대한 링크를 추가 및 제거하고 버튼을 추가하여 메소드를 추가하고 제거합니다.
이제해야 할 일은 배열 컨트롤러를 내 핵심 데이터 모델의 managedObjectContext에 바인딩하는 것입니다. AppDelegate에 있습니다. 그러나 배열 컨트롤러를 선택하고 바인딩으로 이동하여 매개 변수를 선택하면 바인딩 할 수있는 유일한 옵션은 "컨트롤러보기"및 "공유 사용자 기본값 컨트롤러"입니다. View Controller를 선택했지만 모델 키 경로를 알아 내 데이터 모델에 연결할 수 없습니다.
나는 분명히 뭔가 빠져 있어야한다고 생각합니다. View Controller의 AppDelegate 또는 Model Key Path에 바인딩 할 방법이 있어야한다고 생각합니다. 그러나 어느 것도 알 수 없습니다. 어떤 도움을 많이 주셨습니다.
빠른 응답을 주셔서 감사합니다. 내 appDelegate managedObjectContext 매개 변수가없는 것처럼보기 컨트롤러에서 다음 코드를 넣습니다. 필요한 초기화? (코더 : NSCoder) { self.managedObjectContext = (NSApp.delegate as! AppDelegate) .persistentContainer.newBackgroundContext() super. 초기화 (코더 : 코더) }. 그래도 오류가 계속 발생합니다 : [ valueForUndefinedKey :] :이 클래스는 키 managedObjectContext에 대해 키 값 코딩을 준수하지 않습니다. –
나는'NSPersistentContainer' 구문을 고려하여 대답을 업데이트하고 KVC 문제 – vadian
을 고쳐주었습니다. 그 덕분에 .viewContext가 아닌 .newBackgroundContext()를 사용할 때 도움이되었습니다. –