gpt4 book ai didi

iphone - 如何对核心数据获取的属性进行排序

转载 作者:行者123 更新时间:2023-12-03 18:19:07 25 4
gpt4 key购买 nike

Core Data Documentation指出:

The fetch request associated with the [fetched] property can have a sort ordering, and thus the fetched property may be ordered.

如何在 Xcode 的数据模型编辑器中为获取的属性指定排序描述符?我在任何地方都找不到相关领域。我正在为 iPhone 平台进行开发,如果这有什么不同的话。

如果通过图形模型编辑器无法做到这一点,我该如何修改代码中所获取属性的获取请求,以便它具有排序描述符?

最佳答案

您实际上可以获取模型获取的属性并向其添加排序描述符(同样,在代码中)。如果您选择具有核心数据的模板之一,我会使用 XCode 在您的 AppDelegate 中生成的标准方法执行此操作:

顺便说一下。这会对数据模型中所有模型上获取的所有属性进行排序。您可以对它进行奇特和适应性,但它​​是处理对 7 个单独模型进行排序的最简洁方法,每个模型都获取需要按名称排序的属性。效果很好。

/**
Returns the managed object model for the application.
If the model doesn't already exist, it is created by merging all of the models found in the application bundle.
*/
- (NSManagedObjectModel *)managedObjectModel {

if (managedObjectModel != nil) {
return managedObjectModel;
}
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];

// Find the fetched properties, and make them sorted...
for (NSEntityDescription *entity in [managedObjectModel entities]) {
for (NSPropertyDescription *property in [entity properties]) {
if ([property isKindOfClass:[NSFetchedPropertyDescription class]]) {
NSFetchedPropertyDescription *fetchedProperty = (NSFetchedPropertyDescription *)property;
NSFetchRequest *fetchRequest = [fetchedProperty fetchRequest];

// Only sort by name if the destination entity actually has a "name" field
if ([[[[fetchRequest entity] propertiesByName] allKeys] containsObject:@"name"]) {
NSSortDescriptor *sortByName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortByName]];
[sortByName release];
}
}
}
}

return managedObjectModel;
}

关于iphone - 如何对核心数据获取的属性进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1071765/

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