Object-C学习(六)——Foundation框架(二)

三、NSArray和NSMutableArray

Foundation中的数组是一组有序的对象集合,通过索引下标获取到数组的中的各个元素。与字符串相同,数组也有可变和不可变数组之分。此外,数组中不可以存放基本数据类型,职能存放类的实例(对象)。如若需要将基本数据类型、结构体放入数组中,需要通过NSNumber、NSValue进行数据的”封装“。同事不能在NSArray中存储nil(对象的零值或NULL值)。

NSArray是静态的数组,就是它所指向的内容是不可改变的,它指向的一段内存区域,一旦初始化,不能通过它对该内存区域的数据进行修改,但是它可以读数据。

NSMuableArray是动态的,它是NSArray的子类,可以对所指向的内存区域内容进行更改,并可以增加数组内容。NSArray和NSMutableArray的第一个数据的下表为0。

        NSArray *arr1 = [[NSArray alloc] initWithObjects:@"zhangsan",@"lisi",@"wangwu", nil];
        NSArray *arr2 = [NSArray arrayWithObjects:@"zhangsan",@"lisi",@"wangwu", nil];
        if ([arr1 isEqual:arr2])
            NSLog(@"两个数组相等");
        else
            NSLog(@"两个数组不相等");
        
        NSString *str1 = @"zhangsan";
        NSString *str2 = @"lisi";
        NSString *str3 = @"wangwu";
        
        NSArray *arr3 = [[NSArray alloc] initWithObjects:str1,str2,str3, nil];
        if ([arr2 isEqual:arr3]) {
            NSLog(@"arr2与arr3相等!");
        }
        NSArray *arr4 = [NSArray arrayWithArray:arr1];
        NSString *str4 = [arr4 objectAtIndex:1];
        NSLog(@"arr4下标为1的元素值是%@",str4);
        
        NSUInteger index = [arr4 indexOfObject:@"lisi"];
        if (index == NSNotFound) {
            NSLog(@"没有找到此元素");
        }else{
            NSLog(@"找到目标元素,位置是%ld",index);
        }

 

posted @ 2015-08-14 10:36  Mas丶Driver  阅读(166)  评论(0编辑  收藏  举报