iOS开发,如何替换plist这个数组下数据 50
3个回答
2016-03-05 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
//从plist文件中读取数据
- (void)readDataFromPlist
{
//1.先获取文件路径
NSString * filePath = [[NSBundle mainBundle] pathForResource:@"Book" ofType:@"plist"];
//2.根据路径初始化字典对象
self.dic = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];
//将不可边字典变成可变字典
self.addressBook = [NSMutableDictionary dictionaryWithDictionary:_dic];
//将字典封装成对象
//(1)从字典中遍历出key
for (NSString * key in self.dic) {
//根据key获取对应的数组
NSArray * groupArr =self.dic[key];
//(5) 创建可变的小数组,存储封装的对象
NSMutableArray * newGroupArr = [NSMutableArray array];
//(3)获取小数组中元素(遍历小数组)
for (NSDictionary * groupDic in groupArr) {
//(4)通过字典初始化AddressPerson
AddressPerson * Person = [[AddressPerson alloc]initWithDic:groupDic];
[newGroupArr addObject:Person];//将对象存储到新的可变数组中
RELEASE_SAFE(Person);
}
//将要原来key对应的存储字典的小数组替换成装有对象的心得可变的数组
[self.addressBook setObject:newGroupArr forKey:key];
}
//取出字典中所有的key
self.orderedKeys= [[self.addressBook allKeys]sortedArrayUsingSelector:@selector(compare:)];
// NSLog(@"%@",addressBook);
}
- (void)readDataFromPlist
{
//1.先获取文件路径
NSString * filePath = [[NSBundle mainBundle] pathForResource:@"Book" ofType:@"plist"];
//2.根据路径初始化字典对象
self.dic = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];
//将不可边字典变成可变字典
self.addressBook = [NSMutableDictionary dictionaryWithDictionary:_dic];
//将字典封装成对象
//(1)从字典中遍历出key
for (NSString * key in self.dic) {
//根据key获取对应的数组
NSArray * groupArr =self.dic[key];
//(5) 创建可变的小数组,存储封装的对象
NSMutableArray * newGroupArr = [NSMutableArray array];
//(3)获取小数组中元素(遍历小数组)
for (NSDictionary * groupDic in groupArr) {
//(4)通过字典初始化AddressPerson
AddressPerson * Person = [[AddressPerson alloc]initWithDic:groupDic];
[newGroupArr addObject:Person];//将对象存储到新的可变数组中
RELEASE_SAFE(Person);
}
//将要原来key对应的存储字典的小数组替换成装有对象的心得可变的数组
[self.addressBook setObject:newGroupArr forKey:key];
}
//取出字典中所有的key
self.orderedKeys= [[self.addressBook allKeys]sortedArrayUsingSelector:@selector(compare:)];
// NSLog(@"%@",addressBook);
}
展开全部
这个根本没必要。。数据都是网络获取的,直接转成模型数组就行。plist也是转成模型解析到view上面去的,VC解析的时候从解析的延迟加载里面判断替换就行。。再不然,新建个同名的,直接writeToFile去沙盒吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询