지난 몇 시간 동안 머리카락을 찢어 내고 이것이 작동하지 않는 이유를 알아 냈습니다. Core Data에 일대일 관계가 있으며, 세부 세그멘트에 값을 올바르게 전달하려고합니다.일대 다 관계 코어 데이터 : prepareForSegue에서 가져 오기 :
나는이 (가) configureCell에서 데이터를 가져 오는 경우 :
- (void)configureCell:(UITableViewCell *)cell atIndexPath(NSIndexPath *)indexPath
{
TBAppDelegate *delegate = (TBAppDelegate *)[[UIApplication sharedApplication] delegate];
managedObjectContext = [delegate managedObjectContext];
self.everything = [fetchedResultsController.fetchedObjects objectAtIndex:indexPath.section];
NSArray *arg = [NSKeyedUnarchiver unarchiveObjectWithData:self.everything.urls.urls];
NSLog (@"%@, [arg valueForKey:@"source"]); // this prints out a list of stored urls containing locations of jpeg images
}
: 방법, 그것은 나에게 예상대로 값을 제공합니다 아래
은 데이터 모델 (속성은 이진 데이터 유형)입니다
내 NSFetchedResultsController :
- (NSFetchedResultsController *)fetchedResultsController
{
TBAppDelegate *delegate = (TBAppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = delegate.managedObjectContext;
NSFetchRequest *fetchRequest = nil;
fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = nil;
entity = [NSEntityDescription entityForName:@"Everything" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:INFINITY];
NSSortDescriptor *albumDescriptor = nil;
albumDescriptor = [[NSSortDescriptor alloc] initWithKey:@"album_names" ascending:NO];
NSSortDescriptor *urlDescriptor = nil;
urlDescriptor = [[NSSortDescriptor alloc] initWithKey:@"urls.urls" ascending:NO];
NSArray *sortDescriptors = nil;
sortDescriptors = [[NSArray alloc] initWithObjects:albumDescriptor, urlDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *frc = nil;
frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
[frc setDelegate:self];
[self setFetchedResultsController:frc];
return frc;
}
여기 내 prepareForSegue : 메소드가 있습니다. 이 부분은 작동하지 않습니다. 자세히보기 컨트롤러의 섹션 수를 설정하려고 시도 할 때 인식 할 수없는 선택기 오류로 인해 충돌이 발생합니다. 상세 뷰 컨트롤러의
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *indexPath;
indexPath = [self.tableView indexPathForSelectedRow];
TBAppDelegate *delegate = (TBAppDelegate *)[[UIApplication sharedApplication] delegate];
managedObjectContext = [delegate managedObjectContext];
self.everything = [fetchedResultsController.fetchedObjects objectAtIndex:indexPath.section];
NSArray *data = [NSKeyedUnarchiver unarchiveObjectWithData:self.everything.album_names];
NSArray *urls = [NSKeyedUnarchiver unarchiveObjectWithData:self.everything.urls.urls];
TBEverythingDetailViewController *details = segue.destinationViewController;
details.everything = [[data objectAtIndex:indexPath.section]valueForKey:@"name"];
self.urls.urls = [fetchedResultsController.fetchedObjects objectAtIndex:indexPath.section];
details.everythingGroup = [urls objectAtIndex:indexPath.section];
}
부 : 나는 왜 작동하지 않습니다에 관한 여기에 몇 가지 명백한 단계를 놓친 거지 같은 느낌
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// This is where the actual crash happens. It complains about [_NSDictionaryM urls:] unrecognized selector sent to instance
NSArray *count = [NSKeyedUnarchiver unarchiveObjectWithData:self.everythingGroup.urls.urls];
return [count count];
}
. 어떤 도움을받을 수 있을까요?
실제로 -fetchedResultsController에서 NSFetchedResultsController를 반환합니까? – Joride