您的位置:首页 > 其它

NSArray

2015-09-27 22:44 260 查看
这个是用来存储OC对象的数组,记住,只能存储OC对象,非OC对象编译就直接报错

这是1个类

特点:

存储多个数据

长度固定

只能存储OC对象

每1个元素都是有序的

创建字符串的时候,不要使用new array alloc等来创建,因为创建出来的数组长度是0,没有意义

最常用的创建NSArray数组的方法:

arrayWithObjects

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"rose",@"lilei", nil];
    NSLog(@"%@",arr);


注意:

最后要写1个nil 代表结束

写在中间的nil,会认为元素到这里就结束

-

取出数组元素的值

NSArray数组名[下标];

如果下标越界,直接报错

调用方法:

NSString *str = [arr objectAtIndex:0];

NSArray数组的元素:

是id类型的,所以可以存储任意的OC对象

取出来的元素可以赋值给任意的指针变量

取出NSArray数组的元素不能使用点语法

可以在NSLog中使用%@将元素全部输出

取出元素的个数

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSUInteger num = arr.count;
    NSLog(@"%lu",num);


取出下标的元素的值

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSLog(@"%@",[arr objectAtIndex:1])  ;


判断是否包含某个元素

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
//    NSLog(@"%@",[arr objectAtIndex:1])  ;
  BOOL res =  [arr containsObject:@"lili"];
    if (res == YES)
    {
        NSLog(@"包含");
    }else
    {
        NSLog(@"不包含");
    }


取出首个元素

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSString *str = arr.firstObject;
    NSLog(@"%@",str);


取出最后的元素

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSString *str =arr.lastObject;
    NSLog(@"%@",str);


取出某个元素第一次出现的下标

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"jack",@"rose", nil];
    NSUInteger num =  [arr indexOfObject:@"jack"];
    NSLog(@"%lu",num);


指定范围内元素出现的第一次的下标

NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"jack",@"rose", nil];
    NSUInteger num =  [arr indexOfObject:@"jack" inRange:NSMakeRange(1,2)];
    NSLog(@"%lu",num);


NSArray数组的简要初始化

NSArray *arr = @[@"jack",@"lilei",@"lili"];


不必在后面加nil

遍历

NSArray *arr = @[@"jack",@"lilei",@"lili"];

for (int i = 0 ; i<arr.count; i++)
{
NSLog(@"arr[%d] = %@",i,arr[i]);
}


这里使用for循环遍历

NSArray *arr = @[@"jack",@"lilei",@"lili"];

for(NSString *str in arr)
{
NSLog(@"%@",str);
}


使用for增强

使用block遍历NSArray数组

(void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block

NSArray *arr = @[@"jack",@"lilei",@"lili"];

[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"arr[%lu] = %@",idx,obj);
if (idx == 1)
{
*stop = YES;
}

}];


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: