gpt4 book ai didi

objective-c - NSFetchedResultsController 有 0 个部分

转载 作者:太空狗 更新时间:2023-10-30 03:54:49 24 4
gpt4 key购买 nike

我有一个问题,我不知道它来自哪里,与 CoreData 有关。在我的数据库中,有一组类别(带有名称和描述),其中包含元素(使用一对多关系)。

我想在给定 Category 类的属性的情况下将我的 TableView 划分为多个部分,但是当我尝试使用 sectionNameKeyPath: 执行此操作时,生成的 NSFetchedResultsController 有 0 个部分。如果我将 nil 传递给此参数,它有 1 个部分。

代码如下:

- (NSFetchedResultsController*) fetchedResultsController
{
if(fetchedResultsController)
return fetchedResultsController;

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Category"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:10];

// Edit the sort key as appropriate.

NSSortDescriptor *checkDescriptor = [[NSSortDescriptor alloc] initWithKey:@"checked"
ascending:YES];
NSSortDescriptor *indexDescriptor = [[NSSortDescriptor alloc] initWithKey:@"orderIndex"
ascending:YES];
NSArray *sortDescriptors = @[checkDescriptor, indexDescriptor];

[fetchRequest setSortDescriptors:sortDescriptors];

// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"checked"
cacheName:nil];

NSError *error = nil;
if (![fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
return nil;
} else {
fetchedResultsController.delegate = self;
return fetchedResultsController;
}
}

最佳答案

请参阅 NSFetchedResultsController 文档:用于 sectionNameKeyPath 的键(在您的情况下为“name”)必须与第一个排序描述符(“checked”)中使用的键相同在你的情况下)。它们可以不同,但​​是两个键必须生成相同的相对顺序。

在您的情况下,我假设您想在“名称”上添加一个额外的排序描述符并将其用作第一个排序描述符。

关于objective-c - NSFetchedResultsController 有 0 个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12090771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com