是否可以采用现有的NSPredicate并为其添加额外的参数?
在我的一个tableviews中,我传递的是NSPredicate,用于我的NSFetchedResultsController,如下所示:
[fetchedResults setPredicate:self.predicate];
Run Code Online (Sandbox Code Playgroud)
这工作正常,将根据现有的NSPredicate显示内容.但我想通过向tableView添加UISegmentedControl来更进一步.
- (IBAction)segmentChange:(id)sender {
switch (selectedSegment) {
case kDisplayDVD:
// Add argument to existing NSPredicate
break;
case kDisplayVHS:
// Add argument to existing NSPredicate
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
根据用户选择的细分,我想在现有的NSPredicate中添加一个参数.这是可能吗?
我目前正在尝试设置一个NSFetchedResultsController,它将根据多对多关系中的实体数量来命令我的表视图.我不确定这在计算时是否有所不同,但这也是一种反比关系.
我觉得这样的东西会很好用:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Parent"
inManagedObjectContext:managedObjectContext];
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc]
initWithKey:@"children.@count" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1,
nil];
[fetchRequest setSortDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)
我不断得到'Keypath包含KVC聚合物,而不应该有一个; 未能处理孩子.@ count'.
什么可能出错?
我目前有一个选项,允许用户更改我的iPhone应用程序中的类别的显示顺序.
我想使用NSFetchedResultsController对表视图进行分区,以便节标题是"category.displayOrder"排序的"category.name",其中"category"与我正在获取的实体具有TO-ONE关系.我可以让切片正常工作的唯一方法是使用"category.displayOrder"作为节标题.
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"category.displayOrder" ascending:YES];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, sortDescriptor2, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setFetchBatchSize:10];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:@"category.name"
cacheName:nil];
Run Code Online (Sandbox Code Playgroud)
关于如何命名部分标题与我正在排序的属性有什么不同的任何想法?
我有一个父实体和子实体的数据模型.子实体与父实体具有多对多关系(子可以有多个父对象).我目前正在努力获得特定孩子的父母数量:
Parent *doomedParent = [self.fetchedResultsController objectAtIndexPath:indexPath];
Child *child = [doomedParent valueForKey:@"child"];
int parentCount = [[child valueForKey:@"parents.@count"] intValue];
Run Code Online (Sandbox Code Playgroud)
当试图从孩子那里得到父母(父母关系)的数量时,我得到以下错误:
'因未捕获的异常而终止应用程序'NSUnknownKeyException',原因:'[valueForUndefinedKey:]:实体Child不是密钥值编码兼容的密钥"parent.@ count".
我有什么想法可能做错了吗?