IOS--UI--通讯录实战--Plist 取文件
来源:互联网 发布:70c软件 编辑:程序博客网 时间:2024/05/17 02:53
首先 先讲一下单例遍历 Plist 的数据
1.判断 plist 最外层是 什么属性 字典还是数组
① 如果是字典
-(void)readDataFromPlist{ //1.获取文件路径 NSString *filePath =[[NSBundle mainBundle]pathForResource:@"Contacts" ofType:@"plist"];// 2.观察最外层的是什么 设置初始化 接收 字典用字典接收 数组用数组 NSDictionary *dic =[NSDictionary dictionaryWithContentsOfFile:filePath]; // 注意:这个地方为可变字典开辟空间 不写在需要的时候 也就是 forin 里面是因为 我们只需要可变字典开辟一次就可以 放我们最终遍历出来的值 self.datasource =[NSMutableDictionary dictionaryWithCapacity:0]; //先从字典中将 key 遍历出来 key 对应 value(数组类型) for (NSString *key in dic) { // value是数组类型 所以需要找一个数组接收 NSArray *group =dic[key]; // 不可变的数组对于我们添加 删除都很不方便 所以我们创建一个可变的数组空间 等着接收从不可变的数组中取出的值 NSMutableArray *mutGroup =[NSMutableArray arrayWithCapacity:0]; //value 取出后 我们还需要他里面的人的数据 再看plist 里面 数组包裹了 字典 所以 这个时候我们需要从字典中遍历出数据 // 3 将 字典数据封装成 mode 对象 for (NSDictionary *d in group) { Person *person =[[Person alloc]init];//? // 4 将 person 对象存储到 mutGroup 数组中 下面 是一个将 d 封装成 mode 的方法 person 是我们建立的一个mode 类 // setValuesForKeysWithDictionary 是封装方法名 [person setValuesForKeysWithDictionary:d];// 封装好 mode 再加入可变数组中 供我们使用 [mutGroup addObject:person]; [person release]; } // 5 将存储 person 对象的可变数组 mutGroup和 Key 值存储到我们定义的可变字典属性(datasource)中 [self.datasource setValue:mutGroup forKey:key]; }
② 如果是数组
//从 plist 文件中读取数据-(void)readDataFromPlist{ // 1.获取文件路径 NSString *filePath =[[NSBundle mainBundle]pathForResource:@"StudentList" ofType:@"plist"]; // 2.接收数据 NSArray *arr= [NSArray arrayWithContentsOfFile:filePath]; // sourearr 存的都是 model 对象 不再是字典 先建立个可变的数组开辟空间 下面使用 self.soureArr =[NSMutableArray arrayWithCapacity:15]; for (NSDictionary *dic in arr) {// 将字典中数据封装成 student 对象 StudentMode *studenM =[[StudentMode alloc]init]; [studenM setValuesForKeysWithDictionary:dic];// 将封装对象添加到数组中 [self.soureArr addObject:studenM]; [studenM release]; }
可以发现 有很多相似的地方
总结:
/*
①字典型:
1>设字典接收数据;
2>遍历key 求出 array 型的 value 值,并用数组型接收;
3>遍历出 value 里面的数据 ,并用字典接收;
4>将遍历字典出的数据 封装成 mode 对象;
5>将 mode 对象 加入可变数组中 供我们使用;
②数组型
1>设数组接收数据;
2>遍历数组,并用字典接收;
3>将遍历字典的得到的数据封装成 mode 对象;
4>将 mode 对象加入可变的数组中供我们使用;
通过比较可以知道想从 plist 里面取出数据 的基本过程
①在过程中选择什么样的接收类型取决于你要剥离出的数据是什么类型的
②其次就是要注意我们最终使用的是可变的数组 我们遍历的过程其实就是将数据从不可变中取出 然后放入重新开辟了空间的可变数组中
*/
0 0
- IOS--UI--通讯录实战--Plist 取文件
- plist文件取数据
- iOS plist文件中取值遇到的陷阱
- iOS UI篇 - plist文件字典转模型
- UI第十二天:通讯录实战
- 取plist文件的方法
- UI-之plist文件解析
- IOS读取.plist文件
- ios 操作plist文件
- IOS 读写plist文件
- IOS plist文件
- ios plist文件读写
- ios读取plist文件
- iOS plist 文件介绍
- iOS -读取plist文件
- iOS plist文件操作
- iOS plist文件
- iOS plist文件
- JDBCTemplate---方法介绍和简单示例
- 如何获取 Android 设备的CPU核数、时钟频率以及内存大小
- pe系统找不到笔记本硬盘怎么办?解决笔记本进入
- Regular Expression Matching
- MyCnCart图片水印
- IOS--UI--通讯录实战--Plist 取文件
- MySQL 记录的操作
- 2.Add Two Numbers
- (七十二)自定义通知NSNotification实现消息传递
- 通过安装包暗转mysql时,第一次登陆出现 ERROR 1045 (28000): Access denied for user解决方法
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- 多线程编程 基础篇 (一)
- CSU 1160 十进制-十六进制
- 第十一章:运算符重载,友元函数,重载<<运算符,类的自动转换和强制类型转换