对 NSMutableDictionary 进行排序

2023-11-23

我有一个NSMutableDictionary那个映射NSString to NSString(尽管这些值是NSStrings,它们实际上只是整数)。

例如考虑以下映射,

"dog" --> "4"
"cat" --> "3"
"turtle" --> "6"

我希望最终得到字典中按值降序排序的前 10 个条目。有人可以给我看一下代码吗?也许有一个键数组和另一个值数组。不管怎样,我不介意。我只是想让它变得高效。

谢谢你!


获取值的数组,对该数组进行排序,然后获取与该值对应的键。

您可以通过以下方式获取值:

NSArray* values = [myDict allValues];
NSArray* sortedValues = [values sortedArrayUsingSelector:@selector(comparator)];

但是,如果集合如您在示例中所示(我的意思是,您可以从键推断值),您始终可以对键进行排序,而不是弄乱值。

Using:

NSArray* sortedKeys = [myDict keysSortedByValueUsingSelector:@selector(comparator)];

比较器是一个消息选择器,它被发送到您想要订购的对象。

如果你想对字符串进行排序,那么你应该使用 NSString 比较器。 NSString 比较器是:caseInsensitiveCompare 或 localizedCaseInsensitiveCompare:。

如果这些对您都无效,您可以调用自己的比较器函数

[values sortedArrayUsingFunction:comparatorFunction context:nil]

作为比较函数(来自Apple文档)

NSInteger intSort(id num1, id num2, void *context)
{
    int v1 = [num1 intValue];
    int v2 = [num2 intValue];
    if (v1 < v2)
        return NSOrderedAscending;
    else if (v1 > v2)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 NSMutableDictionary 进行排序 的相关文章

  • 如何从 NSString 中删除十六进制字符

    我面临一个与字符串中的某些十六进制值相关的问题 我需要从字符串中删除十六进制字符 The problem is when i print object it prints as BLANK line And in debug mode it
  • iOS 中的等宽字体是什么?

    我想要在我的 iOS 应用程序中为 UILabel 使用等宽字体 不幸的是 我找不到一个 甚至 美国打字机 实际上也不是等宽的 XCode 中可用的等宽字体是什么 iOS 等宽字体 Courier Courier Bold Courier
  • 在WKWebview中设置useragent

    如何在 WKWebView 中设置自定义用户代理字符串 我正在尝试嵌入我的应用程序的版本 以便我的服务器端可以看到可用的功能 我找到了以下方法 let userAgent MyApp 1 33 7 request setValue user
  • UIImage:如何获取网站选项卡图标

    我正在开发一个 RSS 阅读器 我需要获取每个提要的图标 例如 如果我的提要是 google com 我想获取 G 图标并将其放入 UIImage 或其他内容中 关于如何实现这一目标有什么想法吗 最简单的方法是使用 Google NSStr
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c
  • 如何将列表字典写入字符串而不是 CSV 文件?

    This 堆栈溢出问题 https stackoverflow com questions 37997085 how to write a dictionary of lists to a csv file将列表字典写入 CSV 文件的答案
  • 通用类不会将委托调用转发给具体子类

    鉴于以下情况 protocol EntityType var displayString String get extension String EntityType var displayString String return self
  • 具有非零“内容”的 QTMovieLayer 的 iOS 替代品?

    背景 QTKit QuickTime Kit 是一个来自 10 3 天的 Mac 框架 在 10 5 中添加了一些层 例如QTMovieLayer QTMovieLayer 的好处之一是您可以使用常规访问电影内容content图层上的属性并
  • 多个 ViewController(containerView?childView?viewController 的实例?)

    我需要在另一个视图之上添加一个新视图 带有 ViewController 用户与这个新视图交互了一段时间 然后我想将其删除 在旧版本的 Xcode 中 我可以将其添加为子视图 我现在收到 EXC BAD ACCESS 错误 我不希望添加的视
  • 将 csv 中的选定列转换为字典

    我有一个名为 archive 的 csv 文件 它以读者身份打开 我希望创建一个字典 其值 k v 是由 row 0 row 2 row 7 对于 csv 文件中的每一行 必须有一种简单直接的方法可以将此 csv 转换为字典 其中k row
  • 删除部分(红色删除按钮),UITableViewController - iOS

    我正在尝试做一个分组的 uitableview 并且我已经激活了编辑选项 我希望用户也能够删除整个部分 而不仅仅是特定行 因此 当您单击 编辑 时 每个表格单元格左侧显示的红色减号按钮也应该显示在各个部分 部分标题左侧 有人知道如何做到这一
  • 从 AF.Request 响应获取数据

    我需要使用 Alamofire 的 Post 请求调用的 json 响应中的数据 但由于某种原因我无法访问该数据 我尝试按照 Alamofire github 文档以及这篇文章进行操作从 AF 响应 JSON 获取数据 https stac
  • 以编程方式添加带有自动布局的 UISLider

    我正在尝试以编程方式将 UISlider 添加到我的视图中 包括约束 以便其宽度适应整个屏幕宽度 这是我到目前为止得到的 2 Add UISlider self slider UISlider alloc init self view ad
  • 当 Firebase 函数以 Swift 结束时

    我在我的应用程序中使用 Firebase 它查询大量用户并获取所需的特定数据 但是当它开始查询时 其余功能也继续运行 而不仅仅是查询 所以我无法理解当它结束时 例如在这段代码中 ref observeEventType ChildAdded
  • 如何确定 UINavigationController 中工具栏的高度?

    我有一个带有由 UINavigationController 呈现的工具栏的视图 当我处理 UIKeyboardWillShowNotification 时 我将整个屏幕向上滚动键盘的高度 问题是当显示键盘时 底部工具栏不显示 所以我只需将
  • Parse 在哪里存储用户会话

    登录代码 PFUser logInWithUsernameInBackground self userTextField text password self passwordTextField text block PFUser user
  • 后台模式下的 AVSpeechSynthesizer

    我无法获取 iOS 7AVSpeechSynthesizer当我的 iOS 应用程序处于后台模式时工作 我添加了 应用程序播放音频 应用程序支持的后台模式的关键 但我仍然无法让它工作 我还研究了创建一个AVMutableCompositio
  • iOS SWIFT - WebRTC 从前置摄像头更改为后置摄像头

    WebRTC 视频默认使用前置摄像头 效果很好 但是 我需要将其切换到后置摄像头 但我无法找到任何代码来执行此操作 我需要编辑哪一部分 是 localView 或 localVideoTrack 还是捕获器 斯威夫特3 0 对等连接只能有一
  • 将我的免费应用程序从 Universal 升级到仅限 iPhone

    我释放我的free app到 appStore 它的版本是 1 0 它是一个Universal app 现在我想发布 1 1 版本到 appStore 我将其升级到iPhone only appStore会拒绝我吗 我已阅读类似的问题 ht

随机推荐

  • RMI 中可以通过引用传递吗?

    我读过各种有关使用 RMI 传递变量的文章 有些人说在 RMI 中不可能通过引用传递变量 例如 this one and this one 而其他人则说这是可能的 例如 this one this one and this one 有人可以
  • 使用唯一/随机名称存储文件

    使用新的 Firebase API 您可以从客户端代码将文件上传到云存储 这examples假设文件名在上传期间是已知的或静态的 Create a root reference var storageRef firebase storage
  • 如何使用语言环境将日期转换为 go 中的字符串?

    我这样将日期转换为字符串 d Format Mon 02 Jan 我得到类似的东西 Fri 27 Jan 如何切换区域设置并获取其他语言的字符串 你不能 Go 标准库不包含本地化的月份 日期和区域名称 这些名称被连接到time包裹 例如 返
  • NHibernate 无法将 MySQL 日期/时间值转换为 System.DateTime

    我收到 无法将 MySQL 日期 时间值转换为 System DateTime 错误 因为据我所知 我有一条 0000 00 00 00 00 00 的记录 现在 虽然数据不应该是这样的 它应该为空 但在某些情况下可能会发生这种情况 我不希
  • 如何从googletest中的异常中获取回溯信息?

    我正在尝试做一些半测试驱动的设计 有时当我实现一个新功能时 它会在某个地方出现异常 gtest 告诉我的只是异常是什么 并且没有给我任何回溯信息 如果我运行 gdb args gtest catch exceptions 0 它将在出现异常
  • 如何根据对象的属性对 json 或 jsonb 值内的数组中的对象进行排序?

    我有这个 pl pgsql 函数来聚合两个表中的行jsonb value data table 1 and data table 2 fk id是两个表中的公共外键 id DECLARE v my variable 1 jsonb v my
  • 127 及以上范围的正则表达式模式

    我需要一个正则表达式 使其匹配以下加上任何高于 127 的 ascii 即 7F 十六进制及以上 对于给定范围 以下效果很好 string pattern x00 x1F 尝试使用 or 运算符 管道 string pattern x00
  • 使用 javascript/jquery 生成页码?

    如何使用 javascript jquery 生成如下页码 如果选择第 5 页 我必须显示 3 4 和 6 7 以及 1 最后一页以及上一页 下一页 任何建议 EDIT 如何处理使用这些分页 div 的 json 数据 即 我的json数据
  • 如何使用 WebSocket 从 PHP 发送数据/文本进行处理?

    我在服务器上有一个进程充当 WebSocket 服务器 不是用 Ratchet 编写的 我希望能够使用 PHP 作为客户端 将数据发送到该进程 我发现了很多像这样作为 TCP 发送的示例
  • Outlook .MSG 和 .OFT 文件格式之间有区别吗?

    这个问题有点遥远 但我花了几个小时却无济于事 我有一些代码可以在网络服务器上生成电子邮件文件 并允许用户下载该电子邮件并在 Outlook 中打开它 从这里 他们可以在将电子邮件发送给一群人之前对电子邮件进行各种手动更改 现在 我生成一个
  • 当将对象作为参数传递时,它们是通过引用传递的吗?

    如果我执行以下任一操作 是否会对性能产生影响 def do something user article end versus def do something user id article id end 我更喜欢传递对象 因为我可能需要
  • D3.js 的最大数据文件大小

    D3js 数据文件大小的限制因素是什么 文件从服务器加载到客户端需要多长时间 我正在尝试创建芝加哥的路线图 您可以将鼠标悬停在道路上以获取其名称并突出显示它 来自城市的文件大小为 125 MB 我通过删除不必要的信息将其缩减至 30 MB
  • 升级到 EF 6 (RTM) - 获取 System.Data.Entity.Core.Objects.ObjectContext 不能用于返回类型 System.Data.Objects

    刚刚升级了 NET 4 5 WCF 服务 该服务还有一个使用 EF 6 的 OData 服务 OData 服务当然在升级之前可以正常工作 现在 当尝试查询 OData 服务或什至只是从 Visual Studio 2012 浏览到它时 我得
  • 如何从 Android 联系人列表中获取 Skype 信息?

    使用联系人合同内容提供程序的新手 我正在尝试从我的应用程序中进行 Skype 通话 但我不知道如何从 Android 联系人中获取 Skype 信息 我正在通过 ContentResolver 运行查询以获取联系人的所有数据 但我不知道如何
  • 为什么 printf 和 sprintf 在仅给定数组时表现不同?

    sub do printf printf sub do sprintf print sprintf do printf s n ok prints ok do sprintf s n ok prints 2 sprintf有原型 while
  • 使用 jQuery 获取元素类型

    是否可以使用 jQuery 找出元素的类型 例如 元素是 div span select 还是 input 例如 如果我尝试使用 jQuery 将值加载到下拉列表中 但相同的脚本可以将代码生成到一组单选按钮中 我可以创建类似以下内容的内容
  • 如何解决运算符“!=”不能应用于“T”和“T”类型的操作数[重复]

    这个问题在这里已经有答案了 此代码片段按预期工作int type public class Test public int Value get gt Value set if Value value Value value private
  • iOS:如何实现手写识别?

    开始iOS开发 我希望在我的应用程序中实现手写识别 我进行了谷歌搜索 但没有找到任何在 Objective C 中实现文本手势的教程 有没有可用的基本教程来实现文本手势 例如 当用户写入时A在屏幕上 屏幕应该显示A 这个项目有可用的演示教程
  • VBA数组排序功能?

    我正在寻找 VBA 中数组的合适排序实现 快速排序将是首选 或任何其他排序算法除了泡沫或合并就足够了 请注意 这是为了与 MS Project 2003 一起使用 因此应避免任何 Excel 本机函数和任何 net 相关的内容 Take a
  • 对 NSMutableDictionary 进行排序

    我有一个NSMutableDictionary那个映射NSString to NSString 尽管这些值是NSStrings 它们实际上只是整数 例如考虑以下映射 dog gt 4 cat gt 3 turtle gt 6 我希望最终得到