use*_*514 4 xcode objective-c nsstring nsmutablearray
我有一个NSMutableArray组成的NSStrings.当我需要对它进行排序时,我使用的[array sortUsingSelector:@selector(caseInsensitiveCompare:)]是完美的.
但有时我需要通过NSStrings 的子串对数组进行排序.在这种情况下,子串被定义为NSString跟随某个标记的一部分.事实上,标记可以在每个字符串中以不同方式定位.
显然,我可以NSString分成两个对象并对它们进行排序,但这需要进行重大更改.
有没有办法使用类似于我上面描述的选择器进行排序?
我想如果没有,那么我可以通过创建一个数组的排序副本(而不是使用选择器来完成它),然后释放原始数据.
您可以使用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];
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |