美文网首页
将模型数组存到本地

将模型数组存到本地

作者: 神一样的队友 | 来源:发表于2018-05-22 15:13 被阅读0次

之前试了很长时间,将数组直接写入本地,根本写不进去,后来看到一位大神写的,我试了试,真的可以存

#define KdirectoryName @"EventListData"

#define KfileName      @"EventList.plist"

1.初始化路径

-(NSString*)filePath{

    //1.1获取文件管理器对象

    NSFileManager *manager=[NSFileManager defaultManager];

    //1.2合并文件夹路径

    NSString *documentsPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

    NSString*directoryPath=[documentsPathstringByAppendingPathComponent:KdirectoryName];

    if (![manager createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:nil]) {

        NSLog(@"=====文件夹创建失败");

        returnnil;

    }

    //2.创建文件路径

    _filePath=[directoryPath stringByAppendingPathComponent:KfileName];

    return _filePath;

}

2.将数据存到本地

我这边是先从本地读取,然后加载的,就会导致数据重复,所以加个判断,防止,同时从本地读取和网络加载导致数据重复

 NSMutableArray *idArr = [NSMutableArray array];

        for(HDEventModal*model in self.dataArr) {

            [idArr addObject:model.ID]; 

        }

    NSMutableArray *arr2 = [NSMutableArray array];

            for(HDEventModal*modelinobjArr) {

                if(model.ID&& model.ID.length>0 && ![idArr containsObject:model.ID]) {

                    [arr2addObject:model];

                }

      }

            [self.dataArraddObjectsFromArray:arr2];

在网络请求的方法里,  将模型数组里的模型再转换成字典,将装有字典的数组存到本地,事实上也就是以请求下来的json格式存到本地

                    NSMutableArray*mutArr = [NSMutableArray array];

                    for(int i =0; i<self.dataArr.count ; i++){

                        HDEventModal*model =self.dataArr[i];

                        NSDictionary*dic = model.mj_keyValues;

                        [mutArr addObject:dic];

                    }

                    [mutArr writeToFile:self.filePath atomically:YES];

3.读取本地数据

将数据从本地取出,再转化成模型,self.dataArr就是数据源

 NSArray *arr =[NSArray arrayWithContentsOfFile:self.filePath];

    self.dataArr = [HDEventModal mj_objectArrayWithKeyValuesArray:arr];

相关文章

网友评论

      本文标题:将模型数组存到本地

      本文链接:https://www.haomeiwen.com/subject/vdnhjftx.html