1
我想要做的是每x行使得NSFetchedResultsController部分。NSFetchedResultsController中的每3行分区
我试图做一个短暂的财产,将根据其索引像这样给予其部分:
- (NSNumber*)section
{
[self willAccessValueForKey:@"section"];
NSManagedObjectContext* context = [(AppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Animal"];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES]]];
NSArray* array = [context executeFetchRequest:fetchRequest error:NULL];
int order = [array indexOfObject:self];
NSNumber *tmpValue = [NSNumber numberWithInt:order/3];
[self didAccessValueForKey:@"section"];
return tmpValue;
}
,并取得了视图 - 控制的每个对象触发该功能刷新部分:
-(void)refreshSection
{
NSManagedObjectContext* context = [(AppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Animal"];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES]]];
NSArray* array = [context executeFetchRequest:fetchRequest error:NULL];
int order = [array indexOfObject:self];
[self setSection:[NSNumber numberWithInt:order/3]];
}
此解决方案可以工作,但对于大量对象无效。
基本上,我想要实现的是:
部分0:
一个
b
d
第1节:
È
如果我加入C:
第0部分:
a
b
Ç
第1节:
d
Ë
是否有其他更优雅的方式来做到这一点?
谢谢..
你的方法工作,在每当发生任何变化重装表视图的情况下,但如果我想动画使用更新模块的添加或删除,这将是非常难翻译的fetchedresultscontroller和表视图之间indexpathes,而且我还必须管理插入和删除部分,因为从fetchedresultscontroller的角度来看,只有一个部分。这就是为什么我选择了一个直接来自获取控制器的解决方案。 –
你说这会很难,不是不可能的?有时当你有特殊的要求时,即使它不够优雅,你也需要特殊的解决方案。如果表演是必须的,那么没有多少选择。 –