gpt4 book ai didi

cocoa - 对 CoreData 支持的 NSArrayController 进行排序时遇到问题

转载 作者:行者123 更新时间:2023-12-03 17:21:36 25 4
gpt4 key购买 nike

我正在尝试从我的核心数据支持的 NSArrayController 中检索排序对象的数组。一旦 ManagedObjectContext 准备好,我就会触发一个通知,拥有 NSArrayController 的对象会监听该通知,然后使用 sortDescriptors 设置获取请求。然而,数据从未被排序。我已经为此绞尽脑汁好几个小时了。

我在数组中得到了预期的数据,但它根本没有排序。有人知道我哪里出错了吗?

// Elsewhere in code
...
_charts = [[NSArrayController alloc] init];
_charts.entityName = @"Charts";
...

// When Cored Data and Managed Object Context is ready
-(void)mangagedObjectContextReady
{
NSManagedObjectContext *moc = ((AppDelegate *)[NSApp delegate]).managedObjectContext;
_charts.managedObjectContext = moc;
_charts.usesLazyFetching = NO;
_charts.automaticallyPreparesContent = YES;
_charts.automaticallyRearrangesObjects = YES;

// Create fetch request for data
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.entity = [NSEntityDescription entityForName:@"Charts" inManagedObjectContext:moc];

// Create the sort descriptors for the Charts entity
// Name and chartType are properties on the entity "Charts"
NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)];
NSSortDescriptor *chartTypeDescriptor = [[NSSortDescriptor alloc] initWithKey:@"chartType" ascending:YES selector:@selector(caseInsensitiveCompare:)];
fetchRequest.sortDescriptors = @[nameDescriptor, chartTypeDescriptor];

NSError *error = nil;
BOOL success = [_charts fetchWithRequest:fetchRequest merge:NO error:&error];
if(!success)
NSLog(@"Error %@:", [error localizedDescription]);
else {
[_charts rearrangeObjects];
[_tv reloadData];
}

我使用此方法来获取数组或已排序的对象..但数据未按照上述排序描述符进行排序?

[_charts.arrangedObjects objectAtIndex:row]

最佳答案

_charts.sortDescriptors = @[nameDescriptor,chartTypeDescriptor];

关于cocoa - 对 CoreData 支持的 NSArrayController 进行排序时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24600423/

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