0

나는 이것이 아주 길다는 것을 알고 있지만, 현재 첫 번째 CoreData 프로젝트에서 작업 중이며 모든 리소스를 읽음에도 불구하고 아직 완전히 침몰하지는 않습니다. 지금까지 나는 그것을 구하고 모든 것을 지속 할 수 있지만 관계가 올바르게 작동하는 것처럼 보일 수는 없습니다. 관련 Exersizes (일대 다)를 표시하는 테이블로 이동하는 Exersize Categorys를 표시하는 테이블 뷰가 있습니다. 내가 읽은 모든 일에서 ExersizeCoreData : 일대 다 관계 표시 문제

은 (이미지를 게시하려고하지만 난 아직 충분히 담당자 포인트가 없습니다) 그러나 데이터 모델이

ExersizeCategory < --- >>처럼 보인다 나는 결과를 필터링하기 위해 술어를 사용해야 할 수도 있다고 생각하지만 실제로 어떻게 작동하고 날씨가되는지에 대해 혼란 스럽다. 실제로 Exersize 카테고리를 만들고 저장하고 관계가 작동하도록 적절하게 Exersizes한다. 처음에는 여기

내가 작성하고 (또한 텍스트 필드 항목에 이름을 설정)

ExersizeCategory *exersizeCategory = [NSEntityDescription insertNewObjectForEntityForName:@"ExersizeCategory" 
                     inManagedObjectContext:self.managedObjectContext]; 
    exersizeCategory.name = self.textField.text; 

    [self.managedObjectContext save:nil]; // write to database 

을 저장하고있어 방법 그리고 여기에 (거의 동일)을 exersizes의 코드

// Create a new instance of the entity 
    exersize = [NSEntityDescription insertNewObjectForEntityForName:@"Exersize" 
              inManagedObjectContext:self.managedObjectContext]; 

    exersize.name = self.textField.text; 

    [self.managedObjectContext save:nil]; // write to database 

비록입니다 이 개체를 만드는 작업을 보인다 및 나는 아직 coreDataGeneratedAccessors 구현할 수있는 tableviews 그들을보고 있어요, 어떻게 그리고 그 그림에 맞게합니까?

@interface ExersizeCategory (CoreDataGeneratedAccessors) 
  • (공극) addExersizesObject (Exersize *) 값;
  • (void) removeExersizesObject : (Exersize *) value;
  • (void) addExersizes : (NSSet *) values;
  • (void) removeExersizes : (NSSet *) values;

나는 (내가 www.timroadly.com에서 겪고있는 튜토리얼을 통해 발견) 당신이 가져 오기 위해 작성해야하는 코드의 양을 줄이기 위해 보인다 CoreDataTableViewController 클래스를 사용하고 언급해야 생성 스탠포드 대학. side-note : 하위 클래스를 사용하지 않고 표준 방법을 사용하는 것이 더 낫습니다. .h는 스탠포드에 저작권이 있으므로. 앱에서 사용할 수 있는지 확신 할 수 없습니다. ? 여기

나는 현재 내가이 구현에 중요한 부분을 놓친 알고 Exersizes

- (void)setupFetchedResultsController { 
// 1 - Decide what Entity you want 
NSString *entityName = @"Exersize"; // Put your entity name here 
NSLog(@"Setting up a Fetched Results Controller for the Entity named %@", entityName); 

// 2 - Request that Entity 
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName]; 

// 3 - Filter it if you want 

//currently unsure about this! 
//request.predicate = [NSPredicate predicateWithFormat:@""]; 

// 4 - Sort it if you want 
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" 
                       ascending:YES 
                        selector:@selector(localizedCaseInsensitiveCompare:)]]; 
// 5 - Fetch it 
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request 
                    managedObjectContext:self.managedObjectContext 
                     sectionNameKeyPath:nil 
                       cacheName:nil]; 
[self performFetch]; 

}

을 표시 가져 오는거야하지만 난 그냥 확실하지 않다 방법은 어떤 어디. Ive는 며칠 동안 핵심 데이터에만 머물러있어서 배우기가 꽤 힘들었습니다!

가볍게 답변 해 줄 수있는 사람에게 감사/또는 올바른 방향으로 나를 밀어주세요!

답변

0

f.에 맞게이 개체를 만드는 일을 보이지만

나는 내가 coreDataGeneratedAccessors를 구현 아직 어떻게 사람들을 할 곳 tableviews에 그들을 를보고 있어요 : 멸망,

당신은 쓰기 사진?

핵심 데이터는 이러한 메소드의 구현을 동적으로 생성합니다. 헤더는 사용자의 편의와 유형 검사를위한 것입니다.

NSPredicate *p = [NSPredicate predicateWithFormat: @"%K == %@", @"name", @"Push Up"]; 

앤드류

추신 : 여기

exersize 엔티티에 운동 이름을 찾기 위해 간단한 조건입니다 운동이라는 단어의 맞춤법을 정정하고자 할 수 있습니다.

+0

안녕하세요 앤드류 철자가 좋지만 일관성을 위해 순간적으로 동일하게 유지하십시오. 몇 가지 더 읽고 더 노력한 후에, 나는 제대로 가져 오는 것이지만, exersize에 대한 NSSet 수를 0으로 유지하면서 관계에 배치 할 수없는 exersize 개체를 만들 때 믿습니다. 시도해 봤어 [exersizeCategory addExersizesObject : exersize]; 그러나 그것은 작동하지 않는 것 같은가요? 내가 찾을 수있는 모든 솔루션을 시도했지만 어딘가에 여전히 잘못되어 가고 있습니다. 분명히 잘못된 것 같습니까? 다시 한 번 감사드립니다 –

+0

f.perdition, 모든 CD 관계에는 역이 있습니다. 따라서 관계가 일대 다이고 역이 일대일 인 경우 간단한 할당으로 관계를 구축 할 수 있습니다. 다음과 같이 :'exercise.exercises = exercises;'. Andrew – adonoho

+0

Andrew, 이전과 같은 문제는 해결할 수 없습니다. exerciseCategory 객체는 페치 (fetch)되어 생성되지만 실제로는 연습해야합니다. 인쇄 문을 통해 내가 관리되는 개체 컨텍스트에 전달되는 것을 볼 수 있습니다.하지만 NSSet은 비어있는 상태로 남아 있기 때문에 테이블 뷰는 해당 항목을 가져오고 거기에 nothings을 추가했기 때문에 추측하고 있습니다. 가져 오기. 무슨 일이 일어날 지 모르는 어떤 아이디어? 상황을 돕는다면 더 많은 코드를 보여주기 위해 내 게시물을 업데이트 할 수 있습니까? 건배 남자! –