美文网首页
Plist文件本地读取简要封装

Plist文件本地读取简要封装

作者: 罗小耳 | 来源:发表于2016-05-19 16:58 被阅读101次

话不多说,直接上代码

#pragma mark - 将数组保存为本地Plist文件(Model版)
+ (void)SaveArrayToPlistWithArray:(NSArray *)plistArray savePath:(NSString *)savePath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path = [paths objectAtIndex:0];
    NSString *filename = [path stringByAppendingPathComponent:savePath];
    
    [plistArray writeToFile:filename atomically:YES];
}

#pragma  mark - 读取本地Plist文件(Model版)
+ (NSArray *)readArrayWithSavePath:(NSString *)savePath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path = [paths    objectAtIndex:0];
    NSString *filename = [path stringByAppendingPathComponent:savePath];
    //读
    NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filename];
    
    return array;
}

#pragma mark - 将字典保存为本地Plist文件
+ (void)SaveModelDictionaryToPlistWithDictionary:(NSDictionary *)modelDictionary savePath:(NSString *)savePath {
    // 把数据保存到沙盒里的plist文件
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path = [paths objectAtIndex:0];
    // 获取存储plist的完整路径
    NSString *filename = [path stringByAppendingPathComponent:savePath];
    
    [modelDictionary writeToFile:filename atomically:YES];
    NSLog(@"文件写入完成");
    
}

#pragma  mark - 读取本地Plist文件 (NSDictionary类型)
+ (NSDictionary *)readModelDictionaryWithSavePath:(NSString *)savePath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path = [paths objectAtIndex:0];
    NSString *filename = [path stringByAppendingPathComponent:savePath];
    
    // 读
    NSDictionary *plistDic = [[NSDictionary alloc] initWithContentsOfFile:filename];
    
    return plistDic;
}

#pragma mark - 将数组保存为本地Plist文件(Model版)
+ (void)SaveModelArrayToPlistWithArray:(NSArray *)modelArray savePath:(NSString *)savePath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path = [paths objectAtIndex:0];
    NSString *filename = [path stringByAppendingPathComponent:savePath];
    NSMutableArray *tempArray = [NSMutableArray array];
    
    for (id model in modelArray) {
        NSData *tempData = [NSKeyedArchiver archivedDataWithRootObject:model];
        [tempArray addObject:tempData];
    }
    [tempArray writeToFile:filename atomically:YES];
}

#pragma  mark - 读取本地Plist文件(Model版)
+ (NSArray *)readModelArrayWithSavePath:(NSString *)savePath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *path = [paths    objectAtIndex:0];
    NSString *filename = [path stringByAppendingPathComponent:savePath];
    //读
    NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filename];
    NSMutableArray *tempArray = [NSMutableArray array];
    for (NSData *tempData in array) {
        id model = [NSKeyedUnarchiver unarchiveObjectWithData:tempData];
        [tempArray addObject:model];
    }
    
    return tempArray;
}

GitHub 链接

相关文章

网友评论

      本文标题:Plist文件本地读取简要封装

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