码迷,mamicode.com
首页 > 编程语言 > 详细

OC 数组方法介绍

时间:2014-11-12 00:19:33      阅读:584      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   sp   for   strong   div   

NSArray 是不可变的数组,只能够存放对象,但是可以存放不同类型的对象

首先定义一个类

#import <Foundation/Foundation.h>

@interface Person : NSObject
@property NSString *name;
- (id)initWithName:(NSString *)name;

@end
#import "Person.h"

@implementation Person
- (id)initWithName:(NSString *)name {
    if (self =[super init]) {
        _name = name;
    }
    return  self;
}

@end

数组的初始化

 //创建数组几种形式
        NSArray *array = [[NSArray alloc] initWithObjects:p1, @"NSString",@13,nil];//创建一个不可改变的数组 包括多个对象
        array = [NSArray arrayWithObjects:p1, @"NSString",@13,nil]; //工程模式创建(便利构造器)建议用这样方式创建(不需要管理内存)
        NSLog(@"%@",array);
        
        id ch[4]= {@"AAA",@"BBB",@"CC",@"DDD"};
        NSArray *array1 = [[NSArray alloc] initWithObjects:ch count:4];//由一个数组创建
        array1 = [NSArray arrayWithObjects:ch count:4];//工厂模式
        NSLog(@"%@",array1);
       
        NSArray *array2 = [[NSArray alloc] init];//不可变的空数组
        array2 = [NSArray array];
        NSLog(@"%@",array2);
        
        array1 = [NSArray arrayWithObject:@"ABC"];//创建一个对象的不可变数组

数组的常用方法测试

 //获取数组长度
        NSInteger length = [array count];
        NSLog(@"%ld",length);
        //获取数组中的对象
        id obj = [array objectAtIndex:0];
        NSLog(@"%@", obj);
        //也可以用下面这种语法
        obj = array[0];
         NSLog(@"%@", obj);
        //获取对象在数组中的位置
        NSInteger index = [array indexOfObject:@13];
        NSLog(@"%lu", index);
        //遍历数组
        //1常规方式
        for (int i = 0; i < [array count]; i++) {
            NSLog(@"%@",array[i]);
        }
        //2快速遍历
        for(id obj in array){
            NSLog(@"%@",obj);
        }
        //将数组转换为字符串
        NSArray *pathArray = [NSArray arrayWithObjects:@"here", @"be", @"dragons", p1, @13,nil];
        NSLog(@"%@",[pathArray componentsJoinedByString:@"-"]);
        //数组比较
        NSArray *arrayEqual1 = [NSArray arrayWithObjects:@"here", @"be", @"dragons", p1, @13,nil];
        NSArray *arrayEqual2 = [NSArray arrayWithObjects:@"here1", @"be", @"dragons", p1, @13,nil];
        NSLog(@"%hhd",[arrayEqual1 isEqualToArray:arrayEqual2]);//结果为0(NO)
        NSLog(@"%hhd",[arrayEqual1 isEqualToArray:arrayEqual1]);//1(YES)

        //数组的排序
        
        
        NSArray *arrSort = @[@"AAA", @"HHH",@"BBB"];
        //运用selector
        arrSort = [arrSort sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"%@",arrSort);
        
        //运用block
        arrSort = [arrSort sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            return -[(NSString *)obj1 compare:(NSString *)obj2];//倒序
        }];
         NSLog(@"%@",arrSort);

 

OC 数组方法介绍

标签:style   blog   io   color   ar   sp   for   strong   div   

原文地址:http://www.cnblogs.com/zyw1991/p/4090777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!