objective-c – 我可以使用选择器(就地)通过子串对NSStrings的NSMutable数组进行排序吗?

objective-c – 我可以使用选择器(就地)通过子串对NSStrings的NSMutable数组进行排序吗?,第1张

概述我有一个由NSStrings组成的NSMutableArray.当我需要对它进行排序时,我使用[array sortUsingSelector:@selector(caseInsensitiveCompare :)]这是完美的. 但有时我需要通过NSStrings的子串对数组进行排序.在这种情况下,子串在一些标记之后被定义为NSString的一部分.事实上,标记可以在每个字符串中以不同方式定位. 我有一个由Nsstrings组成的NSMutableArray.当我需要对它进行排序时,我使用[array sortUsingSelector:@selector(caseInsensitiveCompare :)]这是完美的.

但有时我需要通过Nsstrings的子串对数组进行排序.在这种情况下,子串在一些标记之后被定义为Nsstring的一部分.事实上,标记可以在每个字符串中以不同方式定位.

显然我可以将Nsstring分解为2个对象并对它们进行排序,但这需要进行重大更改.

有没有办法使用类似于我上面描述的选择器进行排序?

我想如果没有,那么我可以通过创建一个数组的排序副本(而不是使用选择器来完成它),然后释放原始数据.

解决方法 您可以使用NSMutableArray的 sortWithOptions:usingComparator内联执行任意复杂的排序:

[myMutableArray sortWithOptions:NSSortStable usingComparator:^NSComparisonResult(Nsstring* str1,Nsstring* str2) {    // Scan for your marker in both strings and split on it...    // Say you store the results in substr1 and substr2...    return [substr1 caseInsensitiveCompare:substr2];}];
总结

以上是内存溢出为你收集整理的objective-c – 我可以使用选择器(就地)通过子串对NSStrings的NSMutable数组进行排序吗?全部内容,希望文章能够帮你解决objective-c – 我可以使用选择器(就地)通过子串对NSStrings的NSMutable数组进行排序吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1019032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存