数组

来源:互联网 发布:linux空间 编辑:程序博客网 时间:2024/06/10 15:13

数组排序

NSArray *arr = @[@10,@4,@80,@30,@9];    //使用compare方法对数组中的元素进行排序,必须是oc对象,不能自定义对象,默认是升序    NSArray *newArr = [arr sortedArrayUsingSelector:@selector(compare:)];

Person *p1 = [Person new];    p1.age = 10;        Person *p2 = [Person new];    p2.age = 20;        Person *p3 = [Person new];    p3.age = 1;        Person *p4 = [Person new];    p4.age = 100;        NSArray *arr = @[p1,p2,p3,p4];    //该方法默认是生序排列    NSArray*newArr = [arr sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(Person *obj1,   Person* obj2) {        return obj1.age >obj2.age;        // return obj1.age <obj2.age  这样就是降序    }];

//如果使用OC数组存储对象,可以调用OC数组的方法让数组中所有的元素都执行指定的方法        Person*p1 = [Person new];        Person*p2 = [Person new];        Person*p3 = [Person new];        Person*p4 = [Person new];        NSArray *arr = @[p1,p2,p3,p4];        [arr makeObjectsPerformSelector:@selector(say)];        //只能添加一个参数,如果是多个参数只能block遍历        [arr makeObjectsPerformSelector:@selector(say) withObject:@"abc"];
person中有say方法

数组遍历

#pragma mark--第一种遍历方式    NSArray* array = @[ @"111", @"one", @"222", @"123" ];    for (NSInteger i = 0; i < [array count]; i++) {        //        NSString *str = array[i];        NSString* str = [array objectAtIndex:i];        NSLog(@"%@", str);    }#pragma mark--第二种遍历方式    NSArray* array1 = @[ @"11fasdf1", @"fas", @"2fs22", @"12dadf3" ];    //通过快速枚举来遍历    //    for (type *object in collection) {    //        statements    //    }    for (NSString* object in array1) {        //  indexOfObject:查找某一个对象在数组当中的索引        NSInteger index = [array1 indexOfObject:object];        NSLog(@"%ld:%@", index, object);    }#pragma mark--第三种遍历方式    //    id 相当于void    NSArray* array2 = @[ @"11df1", @"fasdafd", @"2fs2fasd2", @"12dadf3" ];    [array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL* stop) {        NSLog(@"%ld: %@",idx,obj);    }];



0 0