Abi*_*ain 6 sorting objective-c nsstring nsarray ios
我有一个NSArray包含一些NSString对象.例如:
NSArray *objects = @[@"Stin",@"Foo",@"Ray",@"Space"];
Run Code Online (Sandbox Code Playgroud)
现在我需要根据字符串的顺序对此数组进行排序.
NSArray *sortOrder = @[@"John",@"Foo",@"Space",@"Star",@"Ray",@"Stin"];
Run Code Online (Sandbox Code Playgroud)
所以答案应该是
NSArray *sorted = @[@"Foo",@"Space",@"Ray",@"Stin"];
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
答案: 基于对dasblinkenlight的接受答案,我做了以下,并且它有魅力.
NSMutableArray *objects = @[@"Star",@"Stin",@"Foo",@"Ray",@"Space",@"John"];
NSArray *sortOrder = @[@"John",@"Foo",@"Space",@"Star",@"Ray",@"Stin"];
[objects sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
int index1 = [sortOrder indexOfObject:obj1];
int index2 = [sortOrder indexOfObject:obj2];
if (index1 > index2)
return NSOrderedDescending;
if (index1 < index2)
return NSOrderedAscending;
return NSOrderedSame;
}];
Run Code Online (Sandbox Code Playgroud)
创建NSComparator包含对超集数组的引用,并通过比较调用[superset indexOfObject:str]两个字符串的结果来确定字符串的相对顺序.调用sortedArrayUsingComparator:传递实例NSComparator以获得所需的顺序.
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |