如何从fetchedresultscontroller访问各个fetchedobjects?

时间:2015-06-12 15:31:08

标签: ios

在我的核心数据中,有2个实体,即Order和OrderItems

每个订单都包含各种OrderItem。

在我的ExportReportViewController中,我编写了基于两个给定日期检索订单的代码,我想将它们写入csv文件并通过电子邮件发送给需要该信息的人。

但是有一个问题,我无法使用fetchedresultscontroller访问我检索到的单个对象,这导致我无法检索与每个订单绑定的订单项。

我检索对象的代码是

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Sale"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"createdAt >= %@ && createdAt < %@", fromDate, toDate];
[fetchRequest setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"createdAt" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];

[self.fetchedResultsController setDelegate:self];

NSError *error = nil;
[self.fetchedResultsController performFetch:&error];

使用这行代码,我能够检索我检索到的订单的所有OrderID,

NSArray *orderIDArray = [[self.fetchedResultsController fetchedObjects] valueForKey:@"orderID"];

在我的另一个作为tableview的控制器中,我只能使用以下代码行访问各个对象:

NSManagedObject *order = [self.fetchedResultsController objectAtIndexPath:indexPath];

这一行后面的内容让我可以检索与每个订单相关的订单项数组

NSArray *orderItems = [[order mutableSetValueForKey:@"orderitems"]allObjects];

然而,因为这只是一个viewcontroller,我无法做到这一点,因为没有indexpath。

任何人都知道如何访问从fetchedresultscontroller检索到的各个对象?

0 个答案:

没有答案