黑马程序员———Objctive-C———【NSArray不可变数组、NSMutableArray可变数组】
2015-09-09 13:25
459 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
——————————————————————————————————————————————————————————————————
NSArray的常用方法
NSArray的遍历方法
NSArray读写文件
NSArray与字符串
NSMutableArray介绍、使用
NSDictionary介绍、使用
NSDictionary的创建、初始化
——————————————————————————————————————————————————————————————————
NSArray的常用方法
- (NSUInteger)count; 获取集合元素个数 - (id)objectAtIndex:(NSUInteger)index; 获得index位置的元素 - (BOOL)containsObject:(id)anObject; 判断是否包含元素 - (NSUInteger)indexOfObject:(NSString *)string; 获取元素的位置 快速创建Array数组 Array array=@[@"1",@"2",@"3",@4]; 用简化的方式访问数组元素 array[3]; //NSString str=array[3]; str=4
NSArray的遍历方法
(1)下标遍历 方法:普通的for循环方法 (2)快速遍历 方法: NSArray array=@[@"one",@"two",@"three"]; for(NSString * str in array){ NSLog(@"%@ ",str); } (3)使用block遍历 方法: 参数id obj:当前对象 参数NSUInteger idx:当前对象的位置 参数BOOL *stop:是否停止 arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){ if(idx==2){ *stop=YES; //只打印前两个元素,当位置为2时,break }else{ NSLog(@"idx=%ld,obj=%@",idx,obj); } }
NSArray读写文件
写入数据和读取数据 NSArray *array=[NSArray arrayWithObjects:@"one",@"two",@"three",@"foure",nil]; //把NSArray中的内容,写入到文件arr.plist中 BOOL isWrite=[array writeToFile:@"/Users/zhaoxiaohu/Desktop/arr.plist" atomically:YES]; if(isWrite){ NSLog("写入成功"); } //读取 NSArray *readArray=[NSArray arrayWithContentsOfFile:@"/Users/zhaoxiaohu/Desktop/arr.plist"]; NSLog(@"%@",readArray);
NSArray与字符串
(1)把数组元素链接成字符串 components:组成、构成 separator:分离器 - (NSString *)componentsJoinedByString:(NSString *)separator; 这是NSArray的方法,用separator作拼接符将数组元素拼接成一个字符串 (2)-(1)把一个字符串分割成数组 NSString *str2=@"400-800-1258"; NSArray *arr2=[str2 componentsSeparatedByString:@"-"]; NSLog(@"%@",[arr2 firstObject]); NSLog(@"%@",[arr2 lastObject]); NSLog(@"%@",arr2[1]); (2)-(2) str2=@"400-800-12580#400-888-11200"; NSArray *arr3=[str2 componentsSeparatedByString:@"#"]; NSLog(@"arr3=%@",arr3); //400-800-12580 400-888-11200 //第一个电话的每一部分 NSArray *arr4=[[arr3 firstObject] componentsSeparatedByString:@"-"]; NSLog(@"arr4=%@",arr4); //400 800 12580
NSMutableArray介绍、使用
(1)空数组 NSMutableArray *arr=[NSMutableArray array]; (2)创建数组的时候,初始化一个元素 NSMutableArray *arr2=[NSMutableArray arrayWithObject:@"one"]; (3)创建数组的时候,初始化多个元素 NSMutableArray *arr3=[NSMutableArray arrayWithObjects:@"one",@"two",@3,nil]; (4)创建一个数组,并且指定长度 NSMutableArray *arr4=[NSMutableArray arrayWithCapacity:(NSUInteger)]; Capacity:容量 (5)增加元素 - (void)addObject:(id)object; (5)-(1)在指定的位置插入元素 - (void)addObject:(id)object atIndex:(NSUInteger)idx; (6)删除元素 根据对象内容删除 removeObject:(id)object; 根据对象下标删除 removeObjectAtIndex:(NSUInteger)idx; 删除最后一个元素 - (void)removeLastObject; 删除所有元素 - (void)removeAllObjects; 删除range范围内的所有元素 - (void)removeObjectsInRange:(NSRange)range; (7)修改元素 快捷方法 arr[0]=@"one"; 用anObject替换index位置对应的元素 - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject; (8)查找元素 - (BOOL)containsObject:(id)object; (9)交换元素(该方法很重要) - (void)exchangeObjectAtIndex:(NSUInteger) withObjectAtIndex:(NSUInteger); (10)NSMutable使用注意事项 使用该种方式创建的数组永远是不可变的 NSMutableArray *array=@[@"ONE",@"TWO"...]; [array addObject:@"Peter"];
NSDictionary介绍、使用
NSDictionary的创建、初始化
(1)创建空字典(无意义,因为NSDictionary不可变,一旦创建,内容不能修改) NSDictionary *dict1=[NSDictionary dictionary]; (2)创建只有一组键值对的地段 NSDictionary *dict2=[NSDictionary dictionaryWithObject:(id) forKey:(id< NSCopying>)]; eg:NSDictionary *dict2=[NSDictionary dictionaryWithObject:@"张三" forKey:@"zs"]; (3)创建多组键值对的字典 NSDictionary *dict3=[NSDictionary dictionaryWithObjectsAndKeys:(id),nil]; eg:NSDictionary *dict3=[NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"k1",@"value2",@"k2",nil]; 注意1:key值和value值都必须是对象类型 注意2:如果key值重复,不会报错,只能保存先定义的键值对 (4)快速创建字典 格式:@{key值:value值...}; eg:NSDictionary *dict4=@{@"zs":@"zhangsan",@"ls":@"lisi"};获取键值对数目、根据key获取value
- (NSUInteger)count; //获取不重复的键值对的数目 - (id)objectForKey:(id)aKey;遍历
(1)使用forin 第1步:获取所有的key 第2步:根据key获取value for(NSString *key in dict4){ NSLog(@"key=%@,value=%@",key,[dict4 objectForKey:key]); } (2)使用block [dict4 enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){ NSLog(@"%@=%@",id,obj); }];
相关文章推荐
- 黑马程序员———Objctive-C———【NSString及NSMutalbeString的使用】
- 【剑指offer】面试题7:用两个栈实现队列
- 【剑指offer】面试题6:重建二叉树
- 【剑指offer】面试题5:从尾到头打印链表
- 黑马程序员——线程间的通讯
- iOS面试专题
- 安卓面试宝典
- 面试题初级-求字符串最后一个单词的长度和判断ip地址的合法性
- 2015-9-8号两次前端面试(大众点评+七牛)
- Java面试题
- 黑马程序员-- 集合框架 (Collection, Iterator,泛型)
- 剑指Offer:面试题4 替换空格
- 给“夜猫子”程序员的科学熬夜指南
- 黑马程序员--抽象类和接口
- 程序员技术练级攻略
- 黑马程序员--字符串的基本操作(String)
- 在线生成按钮,码农们应该收藏
- 在线生成按钮,码农们应该收藏
- 程序员的十层楼
- 怎样成为一名程序员的四个阶段!!!…