2014-04-17 4 views
0

간단한 노트 앱을 만들고 있는데, 데이터 모델에 nsstring 유형의 "content"라는 속성이 하나 뿐인 "메모"라는 엔티티를 만들었습니다.NSManagedObject 개체를 사용하여보기 컨트롤러간에 사용자 지정 속성을 전달하는 방법?

이제 편집자를 사용하여 Note 클래스를 다루었습니다. 데이터 모델 섹션에서 NSManagedObject 서브 클래스를 만들었습니다.

@implementation NOCreateNotesViewController 

- (NSManagedObjectContext *) managedObjectContext 
{ 
    NSManagedObjectContext *context = nil; 

    id delegate = [[UIApplication sharedApplication] delegate]; 

    if ([delegate performSelector:@selector(managedObjectContext)]) { 
     context = [delegate managedObjectContext]; 
    } 

    return context; 
} 


- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if (sender != self.saveButton) return; 
    if (self.noteText.text.length > 0) { 
     self.note = [[Note alloc] init]; 
     self.note.content = self.noteText.text; 
    } 

    NSManagedObjectContext * context = [self managedObjectContext]; 

    // creating a new managed object 

    NSManagedObject *newNote = [NSEntityDescription insertNewObjectForEntityForName:@"Note" inManagedObjectContext:context]; 

    [newNote setValue:self.noteText.text forKey:@"content"]; 

    NSError * error = nil; 

    if ([context save:&error]) { 
     NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]); 
    } 
} 

하지만 나는 사용자가 편집하고자하는 객체를 (전달하려는 내 생성 노트에서

내가이처럼 보이는 prepareForSegue 방법에 데이터베이스에 데이터를 저장하고있어 컨트롤러를보기 이런 식으로) 테이블보기에서 선택된 행에 메모를 의미 : 내 주 개체를 업데이트 할 때문에

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"editeNote"]) { 
     NSManagedObject * selectedNote = [self.notes objectAtIndex:[self.tableView indexPathForSelectedRow].row]; 
     NOCreateNotesViewController * destination = [segue destinationViewController]; 
     destination.note = selectedNote; 
    } 
} 

을 그리고 분명히 내가 NSManagedObject에 대한 포인터와 주 객체를 전달할 수 없습니다 ...이있다 이것은 새로운 것을 생성하는 대신에 편집 구간이라면. 그들은 단지 즉석에서 객체를 생성하고 노트 편집기로 개체에 대한 사용자 정의 클래스를 사용하여 가르치는 tutorial I learned core data basics from에서

/내가 혼란을 조금 받고 있어요 그래서 NSManagedObject 하위 클래스를 만들 ..

도와주세요

답변

1

NSManagedObject * selectedNote = [self.notes objectAtIndex:[self.tableView indexPathForSelectedRow].row]; 
이되고 싶어 :

Note * selectedNote = [self.notes objectAtIndex:[self.tableView indexPathForSelectedRow].row]; 

왜 prepareForSegue에 모델에 데이터를 저장하는 :? 보기에 저장 또는 완료 버튼이 있습니까?

+0

저장 버튼이 있습니다. 오, 나는 그것을 가지고있어, 그래서 내가 메모를 대상 컨트롤러에 전달해야하고, 내가 그것을 저장할 때 segue에 대한 준비에 메모 메모가 nil 내가 저장하지 않으면 확인할 수 있습니까? – Joe

관련 문제