NSArray和NSSet


Narray


OC数组---只能存放OC对象

OC数组不能存放nil

OC数组只能存放OC对象、不能存放非OC对象类型,比如intstructenum


这个array永远是空数组

NSArray *array = [NSArray array];


1NSArray的创建

NSArray *array2 = [NSArray arrayWithObject:@"jack"];


nil是数组元素结束的标记

NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];

 

数组元素的个数

[array2 count];


快速创建一个NSArray对象

NSArray *array4 = @[@"jack", @"rose", @"4324324"];


2NSArray中元素的访问

NSLog(@"%@", [array3 objectAtIndex:1]);


数组的遍历


block遍历

[array enumerateObjectsUsingBlock:

 ^(id obj, NSUInteger idx, BOOL *stop)

 {

     NSLog(@"%ld - %@", idx, obj);

 

     if (idx == 0)

     {

         // 停止遍历

         *stop = YES;

     }

 }];


普通循环遍历,id obj代表着数组中的每一个元素

int i = 0;

for (id obj in array)

{

    // 找出obj元素在数组中的位置

    NSUInteger i = [array indexOfObject:obj];

    NSLog(@"%ld - %@", i, obj);

    i++;

 

    if (i==1)

    {

        break;

    }

}

 

 

NSSet


NSSetNSArray的对比

1> 共同点

都是集合,都能存放多个OC对象

只能存放OC对象,不能存放非OC对象类型(基本数据类型:intcharfloat等,结构体,枚举)

本身都不可变,都有一个可变的子类

2> 不同点

* NSArray有顺序,NSSet没有顺序

NSMutableSet *s = [NSMutableSet set];


添加元素

[s addObject:@"hack"];


删除元素

[s removeObject:@"ha"];


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章