分享

OC基础(2.3)SEL排序

 久辰堡 2015-07-24
main文件

#import <Foundation/Foundation.h>


void mySortUsingSelector(NSMutableArray * array,SEL selector)

{

    //取得数组中元素个数

    NSInteger count = [array count];

    // 冒泡排序,循环

    for (int i = 0; i<count-1; i++) {

        for (int j = 0; j<count-i-1; j++) {

            //取出数组中的  j j+1对应的元素

            id obj1 = [array objectAtIndex:j];

            id obj2 = [array objectAtIndex:j+1];

            // obj1 执行选择器方法,参数为obj2,然后判断是否交换

            if ([obj1  performSelector:selector withObject:obj2]) {

                //如果满足条件,交换

                [array exchangeObjectAtIndex:j withObjectAtIndex:j+1];

            }

        }

    }

}



//给系统的字符串类,扩展两个比较方法

@interface NSString (Compare)

-(BOOL)compareForAsceding:(NSString *)obj;

-(BOOL)compareForDesceding:(NSString *)obj;

@end

//实现这两个方法

@implementation NSString (Compare)


-(BOOL)compareForAsceding:(NSString *)obj

{

    if ([self compare:obj] == NSOrderedDescending) {

        return YES;

    }

    return NO;

}

-(BOOL)compareForDesceding:(NSString *)obj

{

    if ([self compare:obj] == NSOrderedAscending) {

        return YES;

    }

    return NO;

}


@end


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        // insert code here...

        NSLog(@"Hello, World!");

        

        NSMutableArray * mArray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"7",@"4",@"9", nil];

        

        [mArray sortUsingSelector:@selector(compareForAsceding:)];

        

        NSLog(@"%@",mArray);

        

        mySortUsingSelector(mArray, @selector(compareForDesceding:));

        

        NSLog(@"%@",mArray);


    }

    return 0;

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多