【数组】
【注】OC兼容C的数组,用于存储基础数据类型(int, char, float)数据和复合数据类型(int *, int[10])数据;使用OC的数组对象存储类的对象。
【注】NSMutableArray : NSArray
1.NSArray的方法NSMutableArray都可以用
2.传参需要传入NSArray * 也可以传入NSMutableArray *
一.不可变数组NSArray
【注】不可变数组,指数组对象一旦创建,其元素的个数和顺序不可修改。
NSArray * array = @[@"One One", @"Two", @"Three", @"Four", dog];
【方法】
1.根据索引,返回数组的元素
Dog * dog2 = [array1 objectAtIndex:0];
Dog * dog3 = array2[0];
//这个种方法是等价的,返回第0个元素的地址,因为元素是Dog对象,所以用指向这种对象的指针来接收
2.返回数组的元素个数
NSUInteger count = [array count];
3.字符串的分割
NSArray * subStrings = [str componentsSeparatedByString:@“ ”];
NSArray * subStrings = [str componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@“, “]];
4.数组中字符串的拼接
NSString * _str = [subStrings componentsJoinedByString:@"*"];
5.数组的遍历 快速枚举法
//通过索引遍历
for (int i = 0; i < [array count]; i++) {
NSLog(@"%@", array[i]);
}
//快速枚举法
for (NSString * str in array) {
//第一次循环str指向数组第一个元素,第二次循环,str指向数组第二个元素。。。
NSLog(@"%@", str);
}
【注】在for in中break和continue都能使用
【注】如果遍历的是可变数组,在for in结束前,不能修改可变数组的元素个数和顺序。
二.可变数组NSMutableArray
1.重置可变数组
[array setArray:@[@"One", @"Two", @"Three", @"Four"]];
2.增加元素
追加:
[array addObject:@"Five"];
插入:
[array insertObject:@"Six" atIndex:2];
3.删除元素
//删除元素
//删除指定元素,传入需要删除的元素的地址,删除这个元素
//如果要删的是字符串,只需传入和所删字符串相等的字符串就可以了,不用传入同一个字符串。
//如果数组中有多个@"Four"会一起删除
[array removeObject:@"Four"];
//删除指定索引的元素
[array removeObjectAtIndex:2];
4.交换两个元素的位置
[array exchangeObjectAtIndex:0 withObjectAtIndex:2];
【字典】
【注】NSMutableDictionary : NSDictionary
一.字典
NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"One", @"1", @"Two", @"2", @"Three", @"3", nil];
NSDictionary * dict2 = @{@"1": @"One", @"2": @"Two", @"3": @"Three"};
1.返回键值对个数
NSUInteger count = [dict2 count];
2.通过键返回值
NSString * str = [dict2 objectForKey:@"2"];
3.返回所有的键或值
//返回所有的键
NSArray * keys = [dict2 allKeys];
//返回所有的值
NSArray * values = [dict2 allValues];
4.快速枚举法遍历
//快速枚举法遍历
for (NSString * key in dict2) {
//快速枚举法只能遍历字典的键
NSLog(@"%@", [dict2 objectForKey:key]);
// dict[key]
//通过key再去查找值
}
二.可变字典
1.重置字典
[dict setDictionary:dict];
2.添加键值对
[dict setObject:@"Four" forKey:@"0"];
3.删除键值对
[dict removeObjectForKey:@"0"];