Objective-C语言可以在Array数组中放任意类型的数据,值得注意的是只能放指向这个对象的指针,如果直接放int ,char,double 等等,是不行的.
1.NSArray 不可变数组
使用NSArray关键字创建一个不可变的数组,一旦初始化完毕后这个数组的元素是不可以在动态的添加与删除。
1.1创建数组
//结尾的nil 表示结束 NSArray *array= [NSArray arrayWithObjects:@"雨松", @"MOMO",@"哇咔咔",myClass,nil];
1.2数组长度
int count = [array count];
1.3遍历数组
//老办法 for (int i = 0; i < count; i++) { NSLog(@"普通的遍历:i = %d 时的数组对象为: %@",i,[array objectAtIndex: i]); }
//新办法 效率更高 for (NSObject *object in array) { NSLog(@"快速的遍历数组对象为: %@",object); }
2.NSMutableArray 可变数组
int main(int argc, const charchar * argv[]) { @autoreleasepool { //创建一个可变的数组长度为10 NSMutableArray *array = [NSMutableArray arrayWithCapacity:10]; //向数组中动态的添加对象 [array addObject:@"111"]; [array addObject:@"222"]; [array addObject:@"333"]; [array addObject:@"444"]; //再插入自己本身 [array addObjectsFromArray:array]; for (NSObject * object in array) { NSLog(@"输出对象数组:%@", object); } } return 0; }
[NSMutableArray arrayWithCapacity:10] :初始化可变数组对象的长度,如果后面代码继续添加数组超过长度10 会自动扩充不用担心数组越界
[array addObject:...] : 向可变数组尾部添加数据对象。
[array addObjectsFromArray:..] :向可变数组尾部添加一个数组对象。
2.1插入数组元素
//2个参数 一个是数组指针 一个是脚标位置 会自动顺排 atIndex 类型是NSUInteger 或者int [array insertObject:@"插入一只小老虎" atIndex:1];
2.2替换数组元素
//修改脚标索引为2的元素 [array replaceObjectAtIndex: 2 withObject:@"已经修改了"];
2.3删除数组元素
删除指定脚标的元素
[array removeObjectAtIndex:(NSUInteger)];
删除指定元素(测试实质内容)
//这个有点搞 删除的是和str3内存地址内实质内容一致的所有元素 也就是说会自动做一个isEqual 得到yes的就会删除 [muArray removeObject:str3];
删除指元素(测试的内存地址)
//这个删除的只是相同的指针 即如果该指针指向同一个内存地址 就删除这个元素 [muArray removeObjectIdenticalTo:str3];
删除指定范围内特定的元素
NSRange range = NSMakeRange(0,5); //删除该范围内指定为myclass的元素 [array removeObject:myClass inRange:range];
删除整个数组或者指定的数组元素
//如果不写sedArray 而写array 那就把自己全部删除了 [array removeObjectsInArray: sedArray];