標籤:style blog http color io os ar for strong
NSArray
NSArray的建立
NSArray *array = [NSArray arrayWithObject:@“jack”] 建立單個元素
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil] 建立多個元素
快速建立一個NSArray對象
NSArray *array4 = @[@"jack", @"rose", @"4324324"]
[array.count ] 計算數組元素的個數
array3[0]
[array3 objectAtIndex:1] 訪問數組的元素
注意:OC數組不能存放nil值,nil是數組的結束標記
OC數組只能存放OC對象、不能存放非OC物件類型,比如int、struct、enum等
NSArray *array = [NSArray array] 這個數組永遠是空數組
遍曆數組
方法一、
Person *p = [[Person alloc] init]; NSArray *array = @[p, @"rose", @"jack"]; for (int i = 0; i<array.count; i++) { NSLog(@"%@", array[i]); }
方法二、
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; } }
方法三、
[array enumerateObjectsUsingBlock: // 每遍曆到一個元素,就會調用一次block // 並且當前元素和索引位置當做參數傳給block ^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"%ld - %@", idx, obj); if (idx == 0) { // 停止遍曆 *stop = YES; } }];
NSMutableArray
建立數組
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil]
添加元素
[array addObject:[[Person alloc] init]];
[array addObject:@"jack"];
刪除元素
[array removeAllObjects]
刪除指定的對象
[array removeObject:@"jack"];
[array removeObjectAtIndex:0];
NSSet
建立
NSSet *s = [NSSet set]
NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose", @"jack2",@"jack3",nil]
隨機拿出一個元素
NSString *str = [s2 anyObject];
NSLog(@"%@", str);
NSMutableSet
NSMutableSet *s = [NSMutableSet set];
添加元素
[s addObject:@"hack"];
刪除元素
[s removeObject:<#(id)#>];
NSSet和NSArray的對比
1 共同點
1) 都是集合,都能存放多個OC對象
2)只能存放OC對象,不能存放非OC物件類型(基礎資料型別 (Elementary Data Type):int、char、float等,結構體,枚舉)
3)本身都不可變,都有一個可變的子類
2 不同點
NSArray有順序,NSSet沒有順序
NSDictionary
字典都是由索引(key)和文字內容組成的(value)
建立不可變字典
方式一、
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];
方式二、
NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"jack", @"北京"];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
方式三、
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"jack", @"name",
@"北京", @"address",
@"32423434", @"qq", nil];
快速建立一個字典
NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};
取出字典某個對象
id obj = [dict objectForKey:@"name"]
快速取出字典某個對象
id obj = dict[@"name"]
可變字典 NSMutableDictionary
NSMutableDictionary *dict = [NSMutableDictionary dictionary]
添加索引值對
[dict setObject:@"jack" forKey:@"name"];
移除索引值對
[dict removeObjectForKey:@“name”];
遍曆字典
方法一、
NSArray *keys = [dict allKeys]; for (int i = 0; i<dict.count; i++) { NSString *key = keys[i]; NSString *object = dict[key]; NSLog(@"%@ = %@", key, object); }
方法二、
[dict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) { NSLog(@"%@ - %@", key, obj); // *stop = YES; }];
黑馬程式員_ Objective-c 之Foundation筆記(二)