NSMutableArray 排序 ----- sortedArrayUsingFunction

来源:互联网 发布:ps淘宝店标制作 编辑:程序博客网 时间:2024/05/20 17:07
 

- (NSArray *)sortedArrayUsingSelector:(SEL)comparator

Parameters
comparator

A selector that identifies the method to use to compare two elements at a time. The method should returnNSOrderedAscending if the receiver is smaller than the argument, NSOrderedDescending if the receiver is larger than the argument, and NSOrderedSame if they are equal

NSArray *sortedArray =
    [anArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];


@property (nonatomic,readwrite,retain) NSMutableArray *parameters;

[self.parameterssortUsingSelector:@selector(compare:)];



#pragma mark -


- (NSComparisonResult)compare:(id)inObject {

NSComparisonResult result = [self.namecompare:[(MPURLRequestParameter *)inObjectname]];

if (result ==NSOrderedSame) {

result = [self.valuecompare:[(MPURLRequestParameter *)inObjectvalue]];

}

return result;

}


//////////////////////////////////////////////////////////

sortedArrayUsingFunction:适合基本类型(支持compare方法)

#pragma mark SORT METHOTDS

NSInteger sortObjectsByLatestTime(id obj1,id obj2,void *context)

{


NSDate* d1 = [(MessageGroup*)obj1latestTime];

NSDate* d2 = [(MessageGroup*)obj2latestTime];

//sort by desc

return [d2compare:d1];

}


NSInteger dateSort(id obj1,id obj2,void *context)

{

NSDate* d1 = ((Inbox*)obj1).datetime;

NSDate* d2 = ((Inbox*)obj2).datetime;

return [d1compare:d2];

}

////////////////////////////////////////////////////////////////////


-(NSArray*)sortedMessages

{

return [[groupMessagesallValues]sortedArrayUsingFunction:sortObjectsByLatestTimecontext:NULL];

}

//////////////////////////////////////////////////////////

sortUsingDescriptors:适合元素是dict类型,initWithKey既是dict key.

NSMutableArray *regions = [NSMutableArrayarray];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptoralloc]initWithKey:@"name"ascending:YES];

NSArray *sortDescriptors = [NSArrayarrayWithObject:sortDescriptor];

[regionssortUsingDescriptors:sortDescriptors];

[sortDescriptor release];

 

 

http://iphone.ipsw.info/2009/10/nsmutablearray.html