Objective-C中静态数组和动态数组的创建及常用方法

一、静态数组(NSArray)

1.静态数组(NSArray)

数组的内容不可以进行改变,并且在OC中数组只能存放对象类型不能存放C语言的基本数据类型OC的数组可以存放多种对象类型的数据例如[@"dfa", @2, pxd, cc, shuzu],但是不能存NSNull的数据,因为遇到它就不会再检索数组以后的元素。

2.静态数组(NSArray)的创建方法

 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];//用对象创建数组

3.静态数组(NSArray)的一些常用方法

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)

1.动态数组(NSMutableArray)

数组的内容可以通过一些方法进行改变。

2.动态数组(NSMutableArray)的创建方法

 NSMutableArray *ar = [NSMutableArray arrayWithCapacity:0];

3.动态数组(NSMutableArray)的一些常用方法

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(@"不是同一个对象");
        }

猜你喜欢

转载自blog.csdn.net/xutaoshuaiqi/article/details/81274760