使用特殊字符对数组进行排序 - iPhone

2023-12-05

我有一个带有法语字符串的数组,可以说:“égrener”和“exact”我想对其进行排序,例如 égrener 是第一个。当我做:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:descriptor];
NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:sortDescriptors];

我在列表末尾看到 é...我该怎么办?

Thanks


有一个方便的方法NSString这可以让你轻松地进行这种类型的排序:

NSArray *sortedArray = [myArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

NSString的底层比较方法(compare:options:range:locale:)为您提供了更多关于如何进行排序的选择。

Edit:这是一个很长的故事:

首先,定义一个比较函数。这对于自然字符串排序很有用:

static NSInteger comparator(id a, id b, void* context)
{
    NSInteger options = NSCaseInsensitiveSearch
        | NSNumericSearch              // Numbers are compared using numeric value
        | NSDiacriticInsensitiveSearch // Ignores diacritics (â == á == a)
        | NSWidthInsensitiveSearch;    // Unicode special width is ignored

    return [(NSString*)a compare:b options:options];
}

然后,对数组进行排序。

    NSArray* myArray = [NSArray arrayWithObjects:@"foo_002", @"fôõ_1", @"fôõ_3", @"foo_0", @"foo_1.5", nil];
    NSArray* sortedArray = [myArray sortedArrayUsingFunction:comparator context:NULL];

示例中的数组包含一些有趣的字符:数字、变音符号以及 unicode 范围 ff00 中的一些字符。最后一种字符类型看起来像 ASCII 字符,但以不同的宽度打印。

使用的比较函数以人类可预测的方式处理所有情况。排序后的数组具有以下顺序:

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

使用特殊字符对数组进行排序 - iPhone 的相关文章

  • 如何构建 Objective-C 静态库? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些 Objective C 类 目前在 Cocoa 应用程序 Mac OS X 和 Cocoa Touch 应用程序 iOS 中
  • 隐藏故事板中的导航栏

    谁能告诉我如何隐藏故事板中的导航栏 我下面的代码在模拟器中运行时工作正常 但它仍然出现在我的故事板中 这真的很烦我 因为它弄乱了我的图像的位置 有人可以帮忙吗 void viewWillAppear BOOL animated super
  • UITableView 在单元格刷新时滚动到顶部

    我有一个 UITableView 其中一个单元格的大小是动态调整的 以适应其中的 UITextView 每当键入一个键时 单元格都会检查计算出的高度是否增加 就像换行符一样 因此它可以告诉表单元格的高度需要重新计算 我用这段代码做到了这一点
  • Flipboard 动画

    有谁知道如何构建像 Flipboard 应用程序一样的翻转动画 谢谢 如果你指的是翻页过渡 请查看我编写的 OpenGL 过渡类 https github com epatel EPGLTransitionView https github
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • 自定义信息窗口上的按钮未接收 ios 中的操作

    我在 iOS 应用程序中使用 Google 地图 并实现了一个自定义信息窗口来显示标记的标题 现在 我在该自定义信息窗口上添加了一个按钮 但我的问题是按钮操作方法没有被调用 自定义信息窗口 h import
  • 如何缩放曼德尔布罗集

    我已经成功实现了维基百科文章中所述的曼德尔布罗集 但我不知道如何放大特定部分 这是我正在使用的代码 void createSetWithWidth int width Height int height Thing void int int
  • iOS后台获取时间限制崩溃

    我已经设置了背景获取 使用大纲NSScreencast 第 92 集 http nsscreencast com episodes 92 background fetch BOOL application UIApplication app
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • UICollectionView 设置列数

    我刚刚开始学习 UICollectionViews 我想知道是否有人知道如何指定集合视图中的列数 默认设置为 3 iPhone 肖像 我查看了文档 似乎找不到简洁的答案 对于 Swift 5 和 iOS 12 3 您可以使用4 以下实现为了
  • 加速度计适用于 iphone/ipad 模拟器吗?

    据我所知 当我在 XCode 中使用 iPad 模拟器时 我的应用程序应该会触发加速计事件 但事实并非如此 我用谷歌搜索了一下 似乎加速度计没有在模拟器中实现 这是正确的吗 如果是这样 为什么他们会有 硬件 gt 摇动手势 菜单选项 我的代
  • 自定义 UINavigationController UINavigationBar

    基本上我想要一个定制UINavigationBar 我不希望它是 半透明 或任何东西 就像图片应用程序一样 我基本上想完全删除它 但我仍然希望能够在按下导航控制器时添加后退按钮等 并且我想要视图 例如 UITableViewControll
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • 如何订阅设备方向(非界面方向)事件?

    在我的应用程序中 我想在设备旋转 方向更改 的情况下调用 CCScene myscene 中的某些方法 我禁用了自动旋转 因为我希望它不会发生 问题是 我想根据我的设备方向改变场景中的重力 我的代码 void onEnter super o
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • iOS绘图3D图形库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在搜索一个可以帮助我绘制 3D 图表的库 我想要类似的东西这一页 http www math uri edu bkaskosz fla
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 使用ios sdk在youtube上上传视频的方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何从 iOS 应用程序中将视频上传到 YouTube https stackoverflow com questions 3528568 how do i upload a video to you
  • 移动物体而不实际接触物体

    我是 iPhone 开发的初学者 我一直在寻找这个问题的答案 但还没有找到任何东西 我想做的是允许用户移动对象而无需实际触摸该对象 他们可以触摸屏幕上的任何位置 并且当他们移动时 对象将从原来的位置向用户的方向移动移动但不会跳到他们的触摸位
  • 刷新单元格的 UITableView 队列

    我想知道如果调用 UITableView reloadData 时 UITableView 队列被刷新 是否有人可以回复我 我正在尝试这样做 但这对我没有帮助 有什么建议吗 如果你查看 UITableView 的头文件 你可以看到有一个名为

随机推荐

  • Swift 3 - 如何验证对象的类类型

    这行代码曾经适用于 Swift 2 但现在在 Swift 3 中不正确 if gestureRecognizer isMember of UITapGestureRecognizer 我收到此错误 类型名称后需要成员名称或构造函数调用 正确
  • 格式化 UITextField 以用于信用卡输入,例如 (xxxx xxxx xxxx xxxx)

    我想格式化一个UITextField用于输入信用卡号码 使其仅允许输入数字并自动插入空格 以便该号码的格式如下 XXXX XXXX XXXX XXXX 我怎样才能做到这一点 如果您使用 Swift 请阅读我对 Swift 4 的回答的移植并
  • 在 C/C++ 中将矩阵读取为二维数组

    在 C 中将数字矩阵读取 输入到数组中的最简单方法是什么 这是文件内容 尺寸未知 283 278 284 290 290 286 273 266 266 266 261 252 246 382 380 379 381 382 379 384
  • Ajax 响应文本返回为未定义

    我在这段代码中遇到了问题 返回值返回为 未定义 有什么问题 var fx null xmlhttp open GET URL false xmlhttp onreadystatechange function alert enter fun
  • 条形图:更改 x 轴并添加线条

    我有一个动物园 其每日数据如下所示 gt head almorol 1973 10 02 1973 10 03 1973 10 04 1973 10 05 1973 10 06 1973 10 07 183 9 208 2 153 7 84
  • 如何序列化Java类的静态数据成员?

    当我们序列化对象的时候 静态成员是不会被序列化的 但是如果我们需要序列化的话 有什么办法吗 第一个问题是为什么需要序列化静态成员 静态成员与类相关联 而不是与实例相关联 因此在序列化实例时包含它们没有意义 第一个解决方案是使这些成员不是静态
  • 提高 Angular2 输入字段的性能

    我有一个包含日期的组件列表 格式为toLocaleString 和其他东西 在它们之上有一个用于创建新组件的组件 其中包含一个表单 其中包含一些使用 Angulars FormBuilder 构建的输入字段 当我快速输入时 验证会滞后 并且
  • MySQL 错误 1436:线程堆栈溢出,使用简单查询

    我正在对表进行非常简单的更新 这也会触发一个非常简单的触发器 并且它给了我错误 1436 Thread stack overrun 6136 bytes used of a 131072 byte stack and 128000 byte
  • Python 对象的良好风格

    在使用 Python 之前 我的大部分编程都是使用 C 或 Matlab 进行的 我没有计算机科学学位 几乎完成了物理学博士学位 但已经完成了一些课程和大量的实际编程 现在 我正在 Coursera 上学习算法课程 顺便说一句 由斯坦福大学
  • 如何设置App Maker数据源中的当前项目?

    这看起来很基本 但我似乎无法弄清楚如何手动设置当前项目以从数据源使用 举例来说 我有一个表 我注意到当我选择一行来编辑字段时 该行的项目将成为当前项目 因此如果我在该行上有一个链接以导航到页面 则该行的行所选项目将是导航页面的 dataso
  • 按组移动窗口计数不同项

    假设我有一个包含医院就诊的数据集 我的目标是生成一个变量 用于计算访问者在访问日期之前见过的唯一患者的数量 我经常使用 dplyr 的 group by 但这似乎有点棘手 我想我必须使用 group by n distinct 和 sum
  • Python 连接不显示 Swagger UI

    我使用 connexion 模块构建了一个基于 Python Flask 的 REST API 这与使用 swagger yml 文件定义 REST API 一样效果很好 该应用程序正在运行 但是当我导航到
  • eigen 是否有像 H.transpose()*H 这样的自转置乘法优化

    我浏览过 eigen 的教程https eigen tuxfamily org dox devel group TutorialMatrixArithmetic html 它说 注意 对于担心性能的 BLAS 用户 c noalias 2
  • 容器视图控制器示例[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 谁能给我指出创建自定义视图控制器作为容器视图控制器的任何好例子 我能找到的唯一文档是UIViewController 类参考 我觉得我需要更多的信息
  • Xcode 中的 Objective-C 类似 JavaDoc 文档? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 中的文档如何做 是否可以在 Objective C 中以 Xcode 4 在快速帮助中显示它们的方式编写类 方法文档 和 或以 Apple 自己的文档风格从中生成文档文档 现场
  • 如何在 Swift 中创建类数组

    我创建了两个类 StepsCell 和 WeightCell import UIKit class StepsCell let name Steps let count 2000 import UIKit class WeightCell
  • 内联 WSDL 而不是 wsdl:import

    目前我的 WSDL WebService带注释的类创建一个描述类的外部 wsdl 它通过以下方式做到这一点
  • 仅在悬停时过渡

    我有这个 hello opacity 0 transition all 220ms ease 0s hello hover opacity 1 我希望过渡效果仅在用户时可见hover in 而不是当它们悬停时 那可能吗 在本例中将过渡添加到
  • 如何在 PHP 中向 div 添加效果“隐藏(“慢”)”

    我有一个在 PHP 中名为 formscontainer 的 div 中重复多次的表单 同时 我想让表单提交时各自的 div 消失 效果隐藏 慢 这是示例代码
  • 使用特殊字符对数组进行排序 - iPhone

    我有一个带有法语字符串的数组 可以说 grener 和 exact 我想对其进行排序 例如 grener 是第一个 当我做 NSSortDescriptor descriptor NSSortDescriptor alloc initWit