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"];


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