使用第三方库读取plist文件

一、摘要

在数据模型中,读取数据一直是一个比较头疼的问题,以读取plist文件为例,需要一层层往内读,如果自己写代码及其耗时而且容易出错,而使用第三方库,一句代码就可以搞定。

 

二、实例

以shop.plist为例 

1.传统方法

//重写get方法
- (NSMutableArray *)shopArray{
    if (_shopArray == nil) {
        
       //1.获取plist文件的路劲
       NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Shop" ofType:@"plist"];

        //2.读取内容
        //a.数组
       NSArray *contents = [NSArray arrayWithContentsOfFile:filePath];

       //b.字典
     //NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filePath];

       //对数据进行解析/封装
        //如果不解析数据 访问某个数据可能就比较麻烦
       //model类 name price
       self.shopArray = [NSMutableArray array];
       for (NSDictionary *dic in contents) {
         //先读取dic的数据
           NSString *name = [dic objectForKey:@"name"];
           NSString *price = [dic objectForKey:@"price"];

            //需要将这个字典封装为一个具体的对象
           ShopModel *model = [[ShopModel alloc] init];
            model.name = name;
            model.price = price;

           [self.shopArray addObject:model];
        }
        
    }
    return _shopArray;
}

 2.使用第三方库(MJExtension)

读取plist文件放到数组

//懒加载
- (NSMutableArray *)shopModelsArr{
    if (_shopModelsArr == nil) {
        _shopModelsArr = [NSMutableArray array];
        //使用第三方库
        //模型里面的属性名必须和plist文件的key相同
        self.shopModelsArr = [ShopModel mj_objectArrayWithFilename:@"shop.plist"];
    }
    return _shopModelsArr;
}

从数组取出来使用

ShopModel *sm = [self.shopModelsArr objectAtIndex:0];

注意:1⃣️需要导入#import "MJExtension/MJExtension.h"

   2⃣️创建虚拟文件夹:New Group Without Floder

 

posted @ 2019-03-06 20:28  健泽  阅读(703)  评论(0编辑  收藏  举报