美文网首页
NSArray的排序功能sortedArrayUsingSele

NSArray的排序功能sortedArrayUsingSele

作者: 难却却 | 来源:发表于2017-03-16 17:23 被阅读66次

    转自SpeedBoy007的专栏 移动互联网 http://blog.sina.com.cn/speedboy007

    - (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.parameter  ssortUsingSelector:@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 [d2 compare: d1];

    }

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

    {

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

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

    return [d1 compare: d2];

    }

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

    -(NSArray*)sortedMessages

    {

    return  [[groupMessages  allValues] sortedArrayUsingFunction:sortObjectsByLatestTimecontext:NULL];

    }

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

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

    NSMutableArray *regions = [NSMutableArray array];

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

    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];

    [regions sortUsingDescriptors:sortDescriptors];

    [sortDescriptor release];

    相关文章

      网友评论

          本文标题:NSArray的排序功能sortedArrayUsingSele

          本文链接:https://www.haomeiwen.com/subject/xwpjnttx.html