对核心数据实体进行排序的最佳方法是什么?

2023-11-26

我有一个完全正常工作的核心数据模型,但是当我使用获取请求返回数据时,它的顺序看似随机。对这些数据进行排序的最佳方法是什么?是使用核心数据模型中的另一个表,然后“查询”第一个表吗?或者是将数据拉入数组中,然后以这种方式排序?

我不太确定如何做其中任何一个,这就是我问这个问题的原因。


你的问题很笼统,但我会尽力给你一些提示。

当你使用NSFetchRequest类可以指定排序描述符。

来自苹果文档:

排序描述符的数组(实例NSSortDescriptor) 那 指定返回的对象应如何排序,例如 先姓后名。

在这里你可以找到一个简单的例子核心数据片段文档

NSManagedObjectContext *context = <#Get the context#>;

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"<#Entity name#>"
    inManagedObjectContext:context];
[fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"<#Sort key#>"
    ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

NSError *error = nil;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
    // Handle the error
}

// release allocated objects if you don't use ARC

Where

是您要检索的实体的名称,例如Manager.

是请求将用于订购的密钥的名称,例如name是一个属性Manager entity.

所以,在我的例子中:

NSSortDescriptor *sortByName = [[NSSortDescriptor alloc] initWithKey:@"name"
    ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortByName, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

Since setSortDescriptors:设置排序描述符数组,您可以根据您想要的顺序指定多个键。例如指定订购依据name and salary。排序描述符按照它们在 sortDescriptors 数组中出现的顺序应用。所以,在我的例子中,首先name然后通过salary.

所以,在我的例子中,它可能会变成

NSSortDescriptor *sortByName = [[NSSortDescriptor alloc] initWithKey:@"name"
    ascending:YES];
NSSortDescriptor *sortBySalary = [[NSSortDescriptor alloc] initWithKey:@"salary"
    ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortByName, sortBySalary, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

希望有帮助。

Edit

Since fetchedObjects包含NSManagedObject(我想您没有更改请求的结果类型)您需要像下面这样进行迭代:

for(NSManagedObject* currentObj in fetchedObjects) {

    NSLog(@"Print the name %@", [currentObj valueForKey:@"name"]);
}

因此,您需要通过键值编码来访问属性或关系。为了让你的生活更轻松,你可以考虑创造NSManagedObject您创建的实体的子类,例如为 ios 组织核心数据.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对核心数据实体进行排序的最佳方法是什么? 的相关文章

  • .showsPhysics 内存泄漏

    我最近花了 5 个小时尝试调试 Spritekit 应用程序中的内存泄漏 应用程序启动后 我注意到内存使用量略有上升 我花了 5 个小时中的 3 个小时挖掘参考资料 了解强与弱的关系ARC https developer apple com
  • 如何从数组中提取特定元素?

    如果我有一个数组a 1 2 3 4 5 6 7 8 9 10 我想要这个数组的一个子集 第 1 个 第 5 个和第 7 个元素 是否可以通过简单的方式从该数组中提取这些内容 我在想这样的事情 a 0 4 6 1 5 7 但这行不通 还有一种
  • 为什么performSegueWithIdentifier在viewDidLoad中不起作用?

    我试图在视图控制器上调用 viewDidLoad 后立即触发故事板转场 Segue 附加了一个标识符 当从链接到按钮或其他控件的方法内部调用时 它可以正常工作 但它在 viewDidLoad 内部不起作用 它只是默默地失败了 viewDid
  • 在 C 中将字符追加到字符数组

    我想将一个字符附加到代表字符串的字符数组中 我正在使用结构来表示字符串 struct String char c int length int maxLength String realloc弄乱了我的数组 当我打印字符串时 它会从内存中打
  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • 如何保护 iOS 应用程序免受任何操作系统攻击(在越狱设备上)

    我希望保护我的应用程序数据 以防任何操作系统攻击或越狱 iOS 设备上的未经授权的访问 在这种情况下 有什么方法可以检测此类威胁并保护应用程序数据 虽然我同意 jrturton 的说法 但如果您有想要保护的关键数据免受流氓应用程序 而不是用
  • 从一个模态视图无缝翻转到另一个模态视图,而不显示纯色背景

    我的 iPad 应用程序的 UI 如下 当我点击Settings按钮 我希望对话框水平翻转以显示设置对话框 我这个工作正常 但是 当对话翻转时会显示背景颜色 如你看到的 有什么办法可以让对话框翻转时不显示该颜色块吗 我希望它看起来更加无缝
  • (Kiss)XML xpath 和默认命名空间

    我正在开发一个 iPhone 项目 需要解析一些 xml xml 可能包含也可能不包含默认名称空间 我需要知道如何解析 xml 以防它使用默认命名空间 由于我需要读取和写入 xml 因此我倾向于使用 KissXML 但我愿意接受建议 这是我
  • 从按钮执行 Segue 时应用程序冻结

    我的故事板中有一个按钮 它呈现一个带有模式序列的视图控制器 每次按下此按钮时 应用程序都会冻结 没有崩溃 也没有错误消息 prepareForSegue被调用 所有应该存在的视图控制器都在代码中prepareForSegue 但它们不会出现
  • iOS:生成pdf时绘制文本时如何设置字体?

    我在ios应用程序中使用drawpdf函数生成pdf 同时调用nsobject类中的drawtext函数 它根据我指定的框架和字符串清楚地绘制文本 我的代码是 void drawText NSString textToDraw inFram
  • Objective-C NSString for 循环与characterAtIndex

    我试图逐个字符地循环遍历 NSString 但出现 EXC BAD ACCESS 错误 您知道如何正确执行此操作吗 我已经在谷歌上搜索了几个小时但无法弄清楚 这是我的代码 m self textLength self text length
  • 如何实现n个元素的查找和插入操作的动态二分查找

    这个想法是使用多个数组 每个长度为 2 k 根据 n 的二进制表示来存储 n 个元素 每个数组都是排序的 不同的数组没有以任何方式排序 在上述数据结构中 SEARCH是通过对每个数组进行一系列二分查找来进行的 INSERT 是通过一系列相同
  • ReactiveCocoa 将 SignalProducers 合二为一

    我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center NSNotificationCenter defaultCenter let signalProducer1 center rac
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • UIView 圆角 - Swift 2.0?

    我会尝试将一些项目更新到 Swift 2 0 我有一个视图 左上角有一个圆角 在 Swift 没有警告 没有错误 只是没有圆角 这就是它在 Swift let maskPath UIBezierPath roundedRect conten
  • CoreBluetooth:检测设备超出范围/连接超时

    我正在设计一个 iOS 框架来处理多个 BLE 设备 均为同一类型 目前一切都运行良好 除了一件事 客户想要一个包含可用设备的列表 但是 我如何检测过去发现的设备何时不再可用 当我尝试连接到不再可用的设备时 会出现另一个问题 文档说 连接尝
  • 如何表示Apple 发布的Mac OSX 崩溃报告?

    对于 iOS 崩溃报告 将崩溃报告拖放到管理器中就足够了 符号化 iPhone 应用程序崩溃报告 https stackoverflow com questions 1460892 symbolicating iphone app cras
  • 像 TraceGL 一样分析 Objective C 中的代码路径?

    TraceGL 是一个非常简洁的项目 它允许 JS 程序员跟踪 Javascript 中的代码路径 它看起来像这样 我想为 Objective C 构建类似的东西 我知道运行时使跟踪方法调用变得相当容易 但是我如何跟踪控制流 例如 在上面的
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • glmnet 如何计算最大 lambda 值?

    The glmnet包使用了一系列LASSO调整参数lambda从最大缩放lambda max在此情况下不选择预测变量 我想知道如何glmnet计算这个lambda max价值 例如 在一个简单的数据集中 set seed 1 librar
  • 如何使用正则表达式前瞻来限制输入字符串的总长度

    我有这个正则表达式 想要添加限制总长度不超过 15 个字符的规则 我看到了一些前瞻示例 但它们不太清楚 你能帮我修改这个表达式以支持新规则吗 A Z A Z 既然您在标题中提到了这一点 那么对您的案例的负面展望将是 16 regex goe
  • Ruby 中重做和重试语句的用途是什么?

    我能想到的唯一用例redo适用于写入套接字或从数据库读取等操作 但如果这些操作失败一次 后续尝试很可能也会失败 所以对我来说这仍然有点毫无意义 至于retry我真的想不出它会有什么用处 这对我来说似乎毫无意义 因为我不知道也不使用 Ruby
  • CanExecuteCommand 对性能有影响吗?

    使用 ICommand 对象的 CanExecuteCommand 对性能有何影响 该方法是否一遍又一遍地执行 我需要迭代大约 200 个对象的集合 根据这些对象决定是否应启用绑定到命令的按钮 CanExecuteCommand 是否会重复
  • 使用 JNA 的 C 回调使 JRE 崩溃

    我在 JNA 中处理回调时遇到问题 我正在尝试使用 C API 它使用回调来处理多个会话事件 登录 注销 连接问题 会话对象 称为sp session 是一个不透明的结构 所有回调都注册在sp session callbacks结构 根据
  • jQuery 分页 + Twitter Bootstrap

    我正在尝试修改 Jquery 分页 基于这个 Jquery 分页教程 demo 与很棒的 twitter bootstrap 一起工作 Twitter Bootstrap 的标准分页设置如下所示 因此这就是分页输出结构的目标 div cla
  • Android Studio 中的 NDK 集成错误

    我正在使用 Android studio 版本 1 3 1 并尝试通过转到 local proprties 并编写 ndk dir 来集成 NDK 但出现此错误 错误 任务 tesstwo compileReleaseNdk 执行失败 错误
  • Android 连续语音识别返回 ERROR_NO_MATCH 太快

    我尝试实现连续语音识别机制 当我开始语音识别时 我在 logcat 中收到以下消息 06 05 12 22 32 892 11753 11753 com aaa bbb D SpeechManager startSpeechRecognit
  • 如何在 Java 中比较字符串?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我一直在使用 我的程序中的运算符来比较到目前为止我的所有字符串 然而 我遇到了一个错误 将其中一个更改为 equals 相反 它修复了该错误 Is 坏的 什么时
  • 如何通过环境在 aurelia 中设置常量

    我希望将我的 API 基本 URL 更改为dev to prod 在 Angular I 用户中使用config json文件 后来使用注入到应用程序中grunt env 如果您使用奥里利亚 CLI 它将生成一个environments你的
  • 如何在代码编辑器中禁用自动完成代码语句?

    每次我打字if然后按空格键 Delphi 完成它if True then和上面一个新的空行 有没有办法去除this 自动完成 功能或至少编辑它以不创建新行 来自工具 选项 编辑器选项 代码洞察菜单中 取消选择代码模板完成下的自动完成复选框
  • 如何以精确的时间(即 10 毫秒)定期运行 Erlang 进程

    我想每 10 毫秒运行一次定期的 erlang 进程 基于挂钟时间 10 毫秒应该尽可能准确 正确的实施方法应该是什么 如果您想要真正可靠和准确的定期过程 您应该依靠实际的挂钟时间使用erlang monotonic time 0 1 如果
  • 如何运行 test/a.py 形式的单元测试?

    是否可以实现一个具有如下文件结构的Python项目 myproj a py b py c py test a py b py c py Note in particular that the test scripts under test
  • Mongodb - 使用 addToSet 的项目计数

    我分组依据organization并使用 addToSet来展现与众不同的machineIds与此相关的organization 我想计算machineIds对于每个organization 然而 下面的代码返回所有的计数machineId
  • flutter查询firestore中的多个集合

    我正在玩 flutter 但我遇到了 firestore 的问题 我无法弄清楚 假设我想检索客户的购买者历史记录 并且我有一个如下所述的 Firestore 因此我有一个 用户 集合 其中包含以下文档user id然后在其中 我有一个 产品
  • Identity 2.1 - 未找到 UserId 但之前可以使用

    该代码之前多次工作 但在 Identity 2 1 中为用户添加几个新属性后 它突然停止工作 尽管在调试器中可以看到 UserId 的值 但我收到了 UserId not found 错误 任何人都知道为什么会突然发生这种情况 至少看到这一
  • 窗口卸载事件的本地存储

    我使用本地存储来存储一些数据 用户发出 ajax 请求来获取信息 我将结果存储在存储中 以便下次他请求相同的信息时 我首先在存储中查看它是否存在 现在我意识到 将数据保存在内存中的对象中 并在需要时循环该数据 而不是循环本地存储 实际上更有
  • Delphi 的 WebSocket 客户端实现

    Delphi 有免费的 WebSocket 客户端实现吗 我只找到了这个 WebSockets Delphi 组件 但它不是免费的 这是我的开源库 https github com andremussche DelphiWebsockets
  • Django 2.1 - 'functools.partial' 对象没有属性 '__name__'

    我最近将 Django 从 2 0 7 升级到 2 1 1 出现了一个新错误 其中出现此错误 functools partial object has no attribute name 我想了解我的修复是否正确以及是什么导致了这个新错误的
  • 对核心数据实体进行排序的最佳方法是什么?

    我有一个完全正常工作的核心数据模型 但是当我使用获取请求返回数据时 它的顺序看似随机 对这些数据进行排序的最佳方法是什么 是使用核心数据模型中的另一个表 然后 查询 第一个表吗 或者是将数据拉入数组中 然后以这种方式排序 我不太确定如何做其