在iPhone上学习核心数据.关于核心数据用节填充表视图的示例似乎很少.CoreDataBooks示例使用部分,但它们是从模型中的完整字符串生成的.我想按姓氏的第一个字母(如地址簿)将核心数据表组织成多个部分.

我可以进go for each 人创建另一个属性,即一个字母,作为分区,但这似乎很难.

这就是我要开始的...诀窍似乎是在愚弄这sectionNameKeyPath人:

- (NSFetchedResultsController *)fetchedResultsController {
//.........SOME STUFF DELETED
    // Edit the sort key as appropriate.
    NSSortDescriptor *orderDescriptor = [[NSSortDescriptor alloc] initWithKey:@"personName" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:orderDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];
    // Edit the section name key path and cache name if appropriate.
    // nil for section name key path means "no sections".
    NSFetchedResultsController *aFetchedResultsController = 
            [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
            managedObjectContext:managedObjectContext 
            sectionNameKeyPath:@"personName" cacheName:@"Root"];
//....
}

推荐答案

我想我还有另一个 Select ,这个 Select 使用NSString上的一个类别...

@implementation NSString (FetchedGroupByString)
- (NSString *)stringGroupByFirstInitial {
    if (!self.length || self.length == 1)
        return self;
    return [self substringToIndex:1];
}
@end

稍后,在构建FRC时:

- (NSFetchedResultsController *)newFRC {
    NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:awesomeRequest
            managedObjectContext:coolManagedObjectContext
            sectionNameKeyPath:@"lastName.stringGroupByFirstInitial"
            cacheName:@"CoolCat"];
    return frc;
}

这是我现在最喜欢的方法.更干净/更容易实施.此外,您不必对对象模型类进行任何更改来支持它.这意味着只要节名指向基于NSString的属性,它就可以在任何对象模型上工作

Ios相关问答推荐

将图案UI视图动画化以模拟进度条

什么是最好的方式使用DateFormatters在可扩展视图cellForRowAt方法

如何让3张组合的`SF Symbol`图片围绕一个特定点旋转?

ios PWA从外部链接返回后降低了innerheight

为什么iOS委派在KMM中不能正常工作?

视图未更新以在按下按钮时显示另一个视图

如何通过点击按钮滚动到 ScrollView 中的特定视图?

NavigationLink 只能在文本部分点击

SwiftUI - TextField - 在焦点上清除 Double 类型的值,在取消 Select 时恢复

SwiftUI - 如何从主题感知命名 colored颜色 中获取正确的 RGB 值?

'DismissAction'类型的值没有成员'wrappedValue'在SwiftUI的Xcode中

如何在Collection 后更改并保留按钮 colored颜色 ,然后在 SwiftUI 中切换回来?

一个 SwiftUI 视图中的多个垂直滚动视图

iOS swift从另一个数组中删除一个数组的元素

如何将 iPhone OSStatus 代码转换为有用的东西?

swift 语言中的 null / nil

有没有办法在应用store 之外分发 ios 应用程序?

什么是强属性属性

Swift:如何在设备旋转后刷新 UICollectionView 布局

打开 XIB 文件后 Xcode 6.3 冻结/挂起