Narray
OC數組---只能存放OC對象
OC數組不能存放nil值
OC數組只能存放OC對象、不能存放非OC對象類型,比如int、struct、enum等
這個array永遠是空數組
NSArray *array = [NSArray array];
1、NSArray的創建
NSArray *array2 = [NSArray arrayWithObject:@"jack"];
nil是數組元素結束的標記
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
數組元素的個數
[array2 count];
快速創建一個NSArray對象
NSArray *array4 = @[@"jack", @"rose", @"4324324"];
2、NSArray中元素的訪問
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
NSSet和NSArray的對比
1> 共同點
* 都是集合,都能存放多個OC對象
* 只能存放OC對象,不能存放非OC對象類型(基本數據類型:int、char、float等,結構體,枚舉)
* 本身都不可變,都有一個可變的子類
2> 不同點
* NSArray有順序,NSSet沒有順序
NSMutableSet *s = [NSMutableSet set];
添加元素
[s addObject:@"hack"];
刪除元素
[s removeObject:@"ha"];