Dam*_*ien 34 iphone core-data objective-c ios ios5
我在NSFetchedResultsController和iOS 5中提供的新NSOrderedSet关系中遇到了一个问题(理解问题).
我有以下数据模型(好吧,我的真实的不是抽屉和袜子!)但这只是一个简单的例子:

Drawer和Sock都是Core Data模型/商店中的NSManagedObjects.上Drawer的socks关系是一个有序的一对多关系Sock.想法是袜子按特定顺序放在抽屉里.上Sock的drawer关系是逆socks关系.
在UIViewController中,我正在基于这些实体绘制UITableView.我正在用桌子喂餐桌NSFetchedResultsController.
- (NSFetchedResultsController *)fetchedResultsController1 {
if (_fetchedResultsController1 != nil) {
return _fetchedResultsController1;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Sock" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"drawer.socks" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
self.fetchedResultsController1 = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[NSManagedObjectContext MR_defaultContext] sectionNameKeyPath:nil cacheName:@"SocksCache"];
self.fetchedResultsController1.delegate = self;
return _fetchedResultsController1;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到以下错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'to-many key not allowed here'
这对我来说很有意义,因为这种关系是一个NSOrderedSet而不是单个实体来进行比较以进行排序.
我想要实现的是按照关系中指定的顺序Socks出现.我真的不想要排序顺序但是,这是一个很好的组件,坚持必须有一个.如何告诉它在Drawer实体上使用socks命令.我不希望表格显示抽屉实体.UITableViewsocksNSFetchedResultsController
注意:我仅在iOS5应用程序中使用此功能,因此可以使用有序关系.
任何能为我提供任何指导的人都将不胜感激.谢谢你的时间.
编辑:所以显示袜子的tableview只对一个抽屉这样做.我只想让表视图遵守socks关系包含的顺序.我不确定如何设置排序标准以确保发生这种情况.
达米安,
您应该只NSFetchRequest使用有序集的数组形式.它会运作良好.您的控制器需要一个属性来排序.因此,您还需要指定它.
安德鲁
| 归档时间: |
|
| 查看次数: |
6734 次 |
| 最近记录: |