안녕하십니까, 저는 iPhone 프로그래밍 및 핵심 데이터의 초보자입니다. 나는 현재 Core Data의 이론을 배우려고 노력 중이며 this 튜토리얼을 사용하여 응용 프로그램에서 구현하도록 돕고있다.코어 데이터의 뷰에서 데이터 전달
이 자습서에서는 기본보기에 저장된 개체를 나열하는 UITableViewController
과 개체를 저장하는 또 다른 UITableViewController
(특성에 입력하는 위치)을 만듭니다.
내가 만드는 앱에는 3 개의보기가 있습니다. 기본보기는 보통 UIViewController
(계산을 처리 함)이고 더 구체적인 속성으로 입력하는 두 번째보기로 이동하는 UIBarButtonItem
을 눌러 계산을 저장할 수 있습니다. 저장을 탭하면 기본보기로 되돌아 가서 저장된보기 표시 버튼을 탭하여 저장된 객체가 포함 된 UITableViewController
에 액세스 할 수 있습니다. 내가 포함했다
내 기본보기의 인터페이스 파일에 UITableViewController
파일을 #imported,하지만 난이 프로그램을 실행할 때, 나는 나의 prepareForSegue
방법이 행에 오류 : 오류가 "속성이
addShoeSizeTVC.managedObjectContext = self.managedObjectContext;
입니다 managedObjectContext가 'SSFViewController *'유형의 객체에서 발견되지 않음 "이 오류의 의미를 이해합니다. SSFViewController 클래스에서 managedObjectContext라는 객체가 없지만 managedObjectContext가 포함 된 파일을 포함하는 경우 여전히 인정 받는다. 자습서에서는 prepareForSegue
메서드가 새 개체 추가에 대한 목록 뷰에 포함되어 있다는 것을 추가해야합니다. 이 방법을 내 mainViewController
으로 옮겼습니다.
나는 또한 내 ApplicationDidFinishLaunchingWithOptions
방법에 내 응용 프로그램 위임에 오류가 발생합니다 :
controller.managedObjectContext = self.managedObjectContext;
가 (이 같은 오류 메시지를 제공합니다).
내 viewA (mainView)에서 viewB (오브젝트 추가), viewA로 돌아간 다음 viewC (저장된 오브젝트보기)로가는 데이터를 전달하는 방법을 이해할 수 없습니다. 내가 위임에 대한 들었 내 SSFViewController
기본보기에 내 prepareForSegue
방법을 사용하고 있습니다 : 나는 "호환되지 않는 유형의 매개 변수에 'AddObjectTVC *을'전달 'ID가 말한다 경고를 얻을 addObjectTVC.delegate = addObjectTVC.self;
라인 또한
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"Add Object Segue"]) {
NSLog(@"Setting ObjectsTVC as a delegate of AddObjectTVC");
AddObjectTVC *addObjectTVC = segue.destinationViewController;
addObjectTVC.delegate = addObjectTVC.self;
addObjectTVC.managedObjectContext = addObjectTVC.self.managedObjectContext;
}
}
' "
메인보기에 NSManagedContext
또는 다른 위임 방법을 설정해야합니까? 아니면 내 테이블 뷰 중 하나에 추가해야하는 무언가입니까 ???
대단히 감사합니다. 올바른 정보가 제공된다면 해결해야 할 간단한 문제라고 생각합니다. 문제 해결을 위해 필요한 경우 다른 방법을 게시 해 드리겠습니다. 나는 초보자이기 때문에 초보자 친화적 인 방법으로 설명 할 수 있다면 좋을 것입니다.
감사합니다.
prepareForSegue에서 2 가지를 전달할 수 있습니까? 'managedObjectContext'와 'data-name-ID-object'가 있습니까? –
속성을 통해 'managedObjectContext'에 액세스하고 prepareForSegue 메소드에서 전달하지 않습니다. 이해하기 쉽고 훨씬 깔끔합니다. 왜 touch 된 객체를 식별하기 위해 prepareForSegue 메소드에서 sender 객체를 사용하지 않습니까? – andreasgasser
모두 좋은 코드 디자인은 특히 prepareForSegue에서보기를 따라 managedObjectContext를 전달하는 것입니다. 하지만 개체를 전달할 내 문제를 해결 :) [[segue destinationViewController] setObjInNextView : myObj]; 다음보기 –