NSMutableArray和NSArray区别
NSMutableArray是一个可以变长的数组NsArray是一个不可变长数组
创建一个NSMutableArray对象有2种方法
- NSMutableArray *array = [NSMutableArray alloc] init];
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
建议使用第二种来创建NSMutableArray对象 这个是为什么呢?
arrayWithCapacity是类autorelease的,而[NSMutableArray alloc]initWithCapacity需要自己release,initWithCapacity只是数组最终大小的一个参考,这个值不会用来限制数组的大小NSMutableArray的用法
- NSMutableArray添加数据元素
NSMutableArray *aMutableArray = [[NSMutableArray alloc] initWithCapacity:5];
[aMutableArray addObject:@"张三"];
[aMutableArray addObject:@"李四"];
for (NSString *item in aMutableArray) {
NSLog(@"%@",item);
}
输出
2016-11-05 10:50:49.512 11[1210:47587] 张三
2016-11-05 10:50:49.513 11[1210:47587] 李四
- NSMutableArray在指定位置添加数据元素
NSMutableArray *aMutableArray = [[NSMutableArray alloc] initWithCapacity:5];
[aMutableArray addObject:@"张三"];
[aMutableArray addObject:@"李四"];`
[aMutableArray insertObject:@"王麻子" atIndex:0];
atIndex:需要插入的位置
3. NSMutableArray删除元素
```
NSMutableArray *aMutableArray = [[NSMutableArray alloc] initWithCapacity:5];
[aMutableArray addObject:@"张三"];
[aMutableArray addObject:@"李四"];`
[mutableArr removeObject:@"张三"];
[mutableArr removeObjectAtIndex:0];
```
NSArray的用法
1.创建NSArrayNSArray* mNSArray= [NSArray arrayWithObjects:@"张三",@"李四",@"王麻子",nil];
2.获取元素个数和访问
NSLog(@"%ld",[mNSArray count]);
NSLog(@"%@",[mNSArray objectAtIndex:2]);
3.数组转化为字符串
NSString *str=[mNSArray componentsJoinedByString:@"|"];
NSLog(@"%@",str);
2016-11-05 11:25:08.634 11[1399:57983] 张三|李四|王麻子
4.NSArray转化为NSMutableArray
NSMutableArray *aMutableArray = [[NSMutableArray alloc] initWithCapacity:5];
NSArray* mNSArray= [NSArray arrayWithObjects:@"张三",@"李四",@"王麻子",nil];
[aMutableArray addObjectsFromArray:mNSArray];
for (NSString *item in aMutableArray) {
NSLog(@"%@",item);
}
2016-11-05 11:28:01.377 11[1416:59107] 张三
2016-11-05 11:28:01.378 11[1416:59107] 李四
2016-11-05 11:28:01.378 11[1416:59107] 王麻子
- NSArray和NSMutableArray共同的用法
[aMutableArray count]; //获取NSMutableArray数组长度
[mNSArray count];//获NSArray取数组长度
[aMutableArray containsObject:@"张三"];//获取NSMutableArray数组中是否有该值
[mNSArray containsObject:@"张三"];//获取NSArray数组中是否有该值