【发布时间】:2014-11-16 03:13:40
【问题描述】:
我的FetchedResultsController (FRC) 设置如下:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MTWMeeting" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"meetingDay.dayTimestamp" ascending:YES];
NSSortDescriptor *sort2 = [[NSSortDescriptor alloc] initWithKey:@"meetingTimestamp" ascending:YES];
[fetchRequest setSortDescriptors:@[sort, sort2]];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[NSManagedObjectContext MR_defaultContext] sectionNameKeyPath:@"meetingDay.dayTimestamp" cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
我的数据库非常简单——我有一个MTWMeeting 实体和一个MTWDay 实体,可以举行多次会议。每次会议只能有 1 个家长日。
我的表格视图是由 1 个 MTWDay 实体为 1 个部分设置的标题。
现在我需要滚动到该单元格中的特定索引。
我是这样做的:
MTWDay *targetDay = [MTWCoreDataManager suitableDayForMeetingWithTimestamp:[date timeIntervalSince1970]];
MTWMeeting *ourMeeting = [targetDay.dayMeetings anyObject];
NSIndexPath *ourPath = [self.fetchedResultsController indexPathForObject:ourMeeting];
NSIndexPath *tmpPath = [NSIndexPath indexPathForRow:0 inSection:ourPath.section];
现在,无论我做什么,ourPathindex 路径始终是nil。但是,MTWDay 和 MTWMeeting 对象是我从核心数据堆栈中获得的真实核心数据对象。
我有哪些步骤可以摆脱这种行为?我一直在努力解决这个问题好几天没有任何机会。
编辑:
这是上面代码中使用的ourMeeting Core Data 对象的示例打印输出:
<MTWDay: 0x1742a8d00> (entity: MTWDay; id: 0xd000000001780008 <x-coredata://B0F694E1-7A45-4D1E-BB26-6F0A929A135D/MTWDay/p94> ; data: {
dayDisplayTitle = "\U0432\U043e\U0441\U043a\U0440\U0435\U0441\U0435\U043d\U044c\U0435";
dayEvents = "<relationship fault: 0x170230da0 'dayEvents'>";
dayID = nil;
dayMeetings = (
"0xd000000003440002 <x-coredata://B0F694E1-7A45-4D1E-BB26-6F0A929A135D/MTWMeeting/p209>"
);
dayNumericID = 16;
dayTimestamp = "1.416089e+09";
daysMonth = "0xd000000000140006 <x-coredata://B0F694E1-7A45-4D1E-BB26-6F0A929A135D/MTWMonth/p5>";
})
【问题讨论】:
-
您找到解决方案/解释了吗?
标签: cocoa-touch uitableview core-data nsfetchedresultscontroller nsindexpath