我有一个数组,其中包含多个其他数组,每个数组中有两个字符串。我想根据子数组中的第一个字符串按字母顺序对父数组中的项进行排序。我该怎么做呢?
父数组—childdarray1 (bString, string)childdarray2 (dString, string)childdarray3 (cString, string)
改为-->childdarray4 (aString, string)childdarray1 (bString, string)childdarray3 (cString, string)
每个子数组中的第一个字符串决定子数组在父数组中的索引
最简单的解决方案是不使用多维数组,而是使用自定义对象的值,与compare:
方法,例如
@interface MyObject : NSObject
@property (nonatomic, strong, readwrite) NSString* firstString;
@property (nonatomic, strong, readwrite) NSString* secondString;
- (NSComparisonResult)compare:(MyObject*)object;
@end
@implementation MyObject
- (NSComparisonResult)compare:(MyObject*)object {
return [self.firstString compare:object.firstString];
}
@end
,然后使用
对数组进行排序NSArray* sortedObjects = [array sortedArrayUsingSelector:@selector(compare:)];
如果你想坚持你的实现,那么
NSArray* sortedObjects = [array sortedArrayUsingComparator:^(id obj1, id obj2) {
NSString* string1 = [obj1 objectAtIndex:0];
NSString* string2 = [obj2 objectAtIndex:0];
return [string1 compare:string2];
}];