NSArray NSMutableArray的简单使用

孤街醉人 提交于 2020-03-01 03:28:48

一:数组介绍:

1、定义:

简单地说就是元素的集合。OC中数组可以保存不同类型的对象,但只能保存对象。不能保存基本类型,若保存基本数据类型

(int double float ....),需要转换成对象(NSString NSNumber...)保存。数组的最后一个元素为是nil,表示结束。

2、分类:

可变数组 NSMutableArray

不可变数组  NSArray 

(可不可变是指个数能不能改变,数组元素的值还是可以改变的)

二:使用:

1、初始化:

    NSArray *array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];
    NSArray *array2 = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];

    // 不同类型的元素
    NSArray *array3 = [NSArray arrayWithObjects:@"1",array,@"2",array2,@"3", nil];

    // 通过一个数组,来创建一个数组!
    NSArray *array4 = [[NSArray alloc] initWithArray:array];
    NSArray *array5 = [NSArray arrayWithArray:array];

2、增:

NSArray 不能增加元素

    NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one",@"two", nil];
    [array addObject:@"three"];
// 在下标为1的地方,插入一个元素
    [array insertObject:@"five" atIndex:1];

3、删

NSArray 不能删除元素

[array removeObjectAtIndex:0];

[array removeObject:@"one"];
    
[array removeLastObject];
   
[array removeAllObjects];

4、查

//根据下标
[array objectAtIndex:0];
//是否包含
[array containsObject:@"1"];
//个数
[array count];
//最后一个元素
[array lastObject];

5、改

[array replaceObjectAtIndex:2 withObject:@"one"];
[array exchangeObjectAtIndex:0 withObjectAtIndex:1];

6、遍历

//方法1 for循环
for (int i = 0; array.count; i++) {
        NSLog(@"%@",[array objectAtIndex:i]);
}

//方法2 枚举
for (<#type *object#> in <#collection#>) {
        <#statements#>
}
例如:
for (NSString *str in array) {
        NSLog(@"%@",str);
}

//方法3 枚举器
NSEnumerator *enumerator = [array objectEnumerator];  
id obj = nil;  
while(obj = [enumerator nextObject]){  
    NSLog(@"obj=%@",obj);  
}

// 创建一个倒序的枚举器
    enumerator = [array reverseObjectEnumerator];
    while (obj = [enumerator nextObject]) {
        NSLog(@"obj = %@",obj);
    }
    
//方法4 block
[array enumeratorObjectsUsingBlock:  
^(id obj, NSUInteger index, BOOL  *stop){  
    NSLog(@"%i-%@",index,obj);  
    //若终断循环  
    *stop = YES;  
}];

7、比较

[array isEqualToArray:array1];







易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!