数组、字典、集合
NSArray * nn = @[@"元素1",@"元素2",@"元素3"];
NSUInteger i = [nn indexOfObject:@"元素1" inRange:NSMakeRange(0, 3)];
NSLog(@"在给定范围内查找给定字符串所在的下标,如果有的话就返回第一个查找到的元素下标%lu --",i);
//NSMakeRange 里面的范围不能超了
int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); //OC 里面的数组放的是对象必须是对象(可以存放不同类型的对象) 与 C语言里面的数组不同的是 OC里面的数组可以放不同类型的数据 //数组 不可变数组 NSArry 数组是一个大容器 可以存放不同种 不同类的对象 不仅可以存放字符串 数组 //创建数组 普通方法 NSString * arr = [[NSArray alloc]initWithObjects:@"yingjie",@"liuxian", nil];//最后以 nil 结尾,nil 是数组元素结束的标志 初始化方法是:initWithObjects //便利构造器写法 NSArray * arr1 = [NSArray arrayWithObjects:@"xiaobing", nil]; //创建一个空的数组 NSArray * arr2 = [NSArray array]; //把数组 arr1 存放到 arr3 里面 NSArray * arr3 = [NSArray arrayWithArray:arr1]; NSLog(@"%@",arr3);//在控制台数组的输出都带一个小括号 //创建一个简单的写法 NSArray * arry = @[@"元素1",@"元素2",@"元素3"]; //获取数组元素个数 count NSUInteger c = [arry count]; NSLog(@"%lu",c); //获取数组中某个下标的数组元素 NSString * str = [arry objectAtIndex:1]; NSLog(@"%@",str); //获取数组的首个元素 firstObject 也可以是 objectAtIndex:0 NSString * fist = [arry firstObject]; //获取数组的最后一个元素 lastObject NSString * last = [arry lastObject]; NSLog(@"%@ %@",fist,last); //是否包含某个对象元素 BOOL isTrue = [arry containsObject:@"1"]; NSLog(@"%ld e",isTrue); //获取数组元素的下标 NSUInteger index = [arry indexOfObject:@"元素1"]; NSLog(@"%ld f",index); /*//在给定范围内查找给定字符串所在的下标,如果有的话就返回第一个查找到的元素 NSArray * nn = @[@"元素1",@"元素2",@"元素3"];//该例子没有跟上********且有错误 NSUInteger i = [nn indexOfObject:@"2" inRange:NSMakeRange(0, 4)]; NSLog(@"%lu --",i);*/ //数组的比较 比较给定的数组与原来的数组是否相等 isEqualToArray 如果对应的元素不等,改了顺序才等,那也是不相等 BOOL isEqual = [arr1 isEqualTo:arr2]; NSLog(@"%d d",isEqual); //遍历数组元素 for (int i = 0; i < [arry count]; i++) { NSLog(@"%@ 000",[arry objectAtIndex:i]); } //快速遍历、枚举出(数组集合)的方法 在集合 或者数组里查找元素 for (NSString *object in arry) { // NSLog(@"%@ 111",object); NSLog(@"%@ 111",object); } //for in 在集合里面遍历元素,每遇到一个对象元素都会把元素取出,执行 forin 里面的语句,直到集合里没有对象为止 for (id object in arry) { // NSLog(@"%@ 111",object); NSLog(@"%@ 111",object); } //可变的数组 NSMutableArray 是 NSArray 的子类 //比 NSArray 多的功能是 ??? // 创建一个可见数组 NSMutableArray NSMutableArray * muArry = [NSMutableArray arrayWithCapacity:1];//便利构造器 NSMutableArray * muArry1 = [NSMutableArray arrayWithCapacity:2];//普通的方法 //添加数组元素 [muArry addObject:@"22"];//把不可变数组元素添加到可变的数组中 NSLog(@"%@",muArry); NSMutableArray * muArry2 = [NSMutableArray arrayWithArray:arry];//便利构造器吧一个数组元素添加到可变数组中 //插入一个数组元素 [muArry insertObject:@"hello" atIndex:1]; NSLog(@"%@",muArry); // [muArry insertObjects:arr atIndexes:set]; //这里是一个集合 //删除一个数组元素 [muArry removeLastObject]; //删除数组中最后一个元素 NSLog(@"%@",muArry); [muArry removeObjectAtIndex:0]; NSLog(@"删除数组中指定下标的元素%@",muArry); //删除指定范围的元素 [muArry insertObject:@"hello0" atIndex:0]; [muArry insertObject:@"hello1" atIndex:1]; [muArry insertObject:@"hello2" atIndex:2]; [muArry insertObject:@"hello3" atIndex:3]; [muArry insertObject:@"hello4" atIndex:4]; [muArry removeObject:@"hello4" inRange:NSMakeRange(0, 5)];//这里创造的范围不能超出了 NSLog(@"%@",muArry); //全部删除数组的元素 [muArry removeAllObjects]; NSLog(@"全部删除数组的元素后:%@",muArry); [muArry addObjectsFromArray:@[@"z00",@"a11",@"w22",@"f33",@"y44",@"t55",@"r66",@"l77"]];//这里是一个简便的nsarry写法 里面要是写上 汉字的话 打印的是 一行其他的编码 [muArry replaceObjectAtIndex:0 withObject:@"11"];//替换第一个元素为11 NSLog(@"%@",muArry); //交换指定下标的元素对象 [muArry exchangeObjectAtIndex:0 withObjectAtIndex:2];//交换第一个 第二 个元素的对象 NSLog(@"交换指定下标的元素对象%@",muArry); //对于常用的方法最好是能记住 //对数组排序 Sorts the array’s elements in ascending order, as determined by the comparison method specified by a given selector. // sortUsingSelector: 对数组的排序 [muArry addObject:@"12"]; [muArry addObject:@"01"];//这里的数字是字符串对象 NSArray * ny = [muArry sortedArrayUsingSelector:@selector(compare:)];//这里是对立面的元素进行排序,然后把排好序的数组返回,这里没有操作本身 NSLog(@"%@",ny); // [muArry sortUsingSelector:@selector(compare:)];//这里是直接排序,这里是操作了本身 NSLog(@"%@",muArry); } return 0; }