数组的内容不可以进行改变,并且在OC中数组只能存放对象类型不能存放C语言的基本数据类型OC的数组可以存放多种对象类型的数据例如[@"dfa", @2, pxd, cc, shuzu],但是不能存NSNull的数据,因为遇到它就不会再检索数组以后的元素。
NSArray *array = @[@"jack",@"tom",@"merry"];//系统自己管理
NSArray *arr = [[NSArray alloc] initWithArray:array];//用一个存在的数组创建数组,手动管 理
NSArray *arr_ = [NSArray arrayWithArray:array];//用一个存在的数组创建数组,手动管理
NSArray *arr1 = [[NSArray alloc] initWithObjects:@"jack",@"tom", nil];//用对象创建数组
NSArray *arr1_ = [NSArray arrayWithObjects:@"jack",@"tom", nil];//用对象创建数组
1.判断数组元素个数
NSLog(@"%ld", array.count);
2.访问数组的元素
NSString *name = [arr1 objectAtIndex:0];//objectAtIndex索引值
3.获取某个元素在数组里面的索引值
NSUInteger index = [arr1 indexOfObject:@"tom"];
4.判断数组里面是否包含某个元素
BOOL result = [arr1 containsObject:@"jack"];
5.获取数组的第一个元素或最后一个元素
[arr1 objectAtIndex:0];//第一个元素
arr1[0]//第一个元素
[arr1 firstObject];//第一个元素
[arr1 lastObject];//最后一个元素
数组的内容可以通过一些方法进行改变。
NSMutableArray *ar = [NSMutableArray arrayWithCapacity:0];
1.向数组里面添加一个元素
[ar addObject:@"shanghai"];//以元素的形式添加
[ar addObjectsFromArray:@[@"cq",@"cd"]];//以数组的形式添加
2.向数组中插入元素
[ar insertObject:@"bj" atIndex:1];//在索引位置处插入
3.交换数组中的数据
[ar exchangeObjectAtIndex:0 withObjectAtIndex:1];//交换索引处元素的值
4.删除数组中的元素
[ar removeObject:@"xianggang"];//删除指定元素
[ar removeObject:@"bj"];//删除指定元素
[ar removeObjectAtIndex:1];//删除指定索引处的元素
[ar removeAllObjects];//删除所有元素
5.一个重要的结论
//两个对象的比较
NSString *ob1 = @"Jack";
NSString *ob2 = @"jacken";
Person *p1 = [[Person new] autorelease];
Person *p2 = [[Person new] autorelease];
//注意:p1和p2不是一个对象 只是名字相同而已
p1.name = @"Jack";
p2.name = @"Jack";
当一个对象被添加到一个集合里面(NSArray NSDictionary NSSet)这个对象的引用计数+1
NSArray *pArray = @[p1];
p1.name = @"Jack";
NSLog(@"%@", ((Person *)pArray[0]).name);
if ([p1 isEqual:pArray[0]]) {
NSLog(@"是同一个对象");
} else{
NSLog(@"不是同一个对象");
}