MSMutableArray可变数组
大多时候我们需要动态的增加和删除数组中的元素,这就需要使用MSMutableArray.
int main(int argc, const char * argv[])
{
@autoreleasepool {
//创建一个空数组
NSMutableArray *arrs = [NSMutableArray array];
//C中的一些基本元素我们可以用NSNumber类来包装,类似java中的装箱,另外还有一些struct类型的数据我们也可以用NSNumber类的父类NSValue来进行包装,包装成NSValue的对象再将其放入数组中。
int age=23;
char c='a';
float f=3.1415926;
NSRect rect =NSMakeRect(1, 2, 3, 4);
NSNumber *objAge = [NSNumber numberWithInt:age];
NSNumber *objC =[NSNumber numberWithChar:c];
NSNumber *objF =[NSNumber numberWithFloat:f];
NSValue *objRect = [NSValue valueWithRect:rect];
[arrs addObject:objAge];
[arrs addObject:objC];
[arrs addObject:objF];
[arrs addObject:objRect];
//如果要添加空的话可以用以下方法
[arrs addObject:[NSNull null]];
NSLog(@"Size of arrs: %li",(unsigned long)[arrs count]); //Size of arrs: 5
NSLog(@"%@",arrs);
//创建一个指定初始容量的数组
NSMutableArray *arrs2 = [NSMutableArray arrayWithCapacity:3];
//指定初始容量为3,但我们添加了5个对象
[arrs2 addObject:@"obj1"];
[arrs2 addObject:@"obj2"];
[arrs2 addObject:@"obj3"];
[arrs2 addObject:@"obj4"];
[arrs2 addObject:@"obj5"];
//将对象 obj 插入到索引为 i 的位置
[arrs2 insertObject:@"obj" atIndex:0];
//删除指定索引处的对象
[arrs2 removeObjectAtIndex:3];
//遍历数组
for(id obj in arrs2){
NSLog(@"%@",obj); //obj,obj1,obj2,obj4,obj5
}
//合并字符串数组
NSString *str = [arrs2 componentsJoinedByString:@"|"];
NSLog(@"%@",str); //obj|obj1|obj2|obj4|obj5
//字符串切割成数组
NSArray *arr3=[str componentsSeparatedByString:@"|"];
NSLog(@"%@",arr3);
}
return 0;
} |
|