加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 我可以使用选择器(就地)通过子串对NSStrings的NS

发布时间:2020-12-14 17:49:01 所属栏目:百科 来源:网络整理
导读:我有一个由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];
}];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读