关闭

数据缓存&&文件缓存方法

标签: 数据缓存文件缓存缓存
826人阅读 评论(0) 收藏 举报
分类:

缓存方式有很多,其中本人感觉文件缓存是比较简单的一种,下边这是一种文件缓存方法:

方法阐述:主要的去存储网络解析得到的json串从而达到缓存数据的目的

hhcommonClass.h文件中:

 

@interface hhcommonClass : NSObject

///根据FileName获取Document内路径

+(NSString*)GetFileDocPath:(NSString*)fileName;

//搜索Documnet文件夹下所有文件

+(NSMutableArray*)SearchAllFiles;

 

///String到本地Cache文件内

+(BOOL)WriteStrToCacheFile:(NSString*)str fileName:(NSString*)_fileName;

//从本地Cache文件读取string

+(NSString*)ReadStrFromCacheFile:(NSString*)fileName;

//删除本地所有Cache文件

+(int)DeleteAllCacheFile;

 

hhcommonClass.m文件中:

@implementation hhcommonClass

+(NSString*)GetFileDocPath:(NSString*)fileName

{

    NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString*documentsDirectory = [paths objectAtIndex:0];

    return[documentsDirectory stringByAppendingPathComponent:fileName];

}

+(BOOL)WriteStrToCacheFile:(NSString*)strfileName:(NSString*)_fileName

{

    if(str==nil||_fileName==nil)

        return NO;

    NSString*filePath = [hhcommonClass GetFileDocPath:[NSString stringWithFormat:@"%@.yfch",_fileName]];

    [str writeToFile:filePathatomically:YES encoding:NSUTF8StringEncoding error:nil];

    return YES;

}

 

+(NSString*)ReadStrFromCacheFile:(NSString*)fileName

{

    NSString*filePath = [hhcommonClass GetFileDocPath:[NSString stringWithFormat:@"%@.yfch",fileName]];

    if([[NSFileManager defaultManager] fileExistsAtPath:filePath]==NO)

        return @"";

   

    NSString*str = [NSString stringWithContentsOfFile:filePathencoding:NSUTF8StringEncoding error:nil];

    returnstr;

}

+(NSMutableArray*)SearchAllFiles

{

    return[[[NSFileManager defaultManager] contentsOfDirectoryAtPath:[hhcommonClass GetFileDocPath:@""] error:nil] mutableCopy];

}

 

+(int)DeleteAllCacheFile

{

    NSFileManager*fileManager = [[NSFileManager alloc] init];

    NSArray*array = [[fileManager contentsOfDirectoryAtPath:[hhcommonClass GetFileDocPath:@""]error:nil]   pathsMatchingExtensions:[NSArray arrayWithObject:@"yfch"]];

    for(int i=0;i<array.count;i++)

    {

        [fileManager removeItemAtPath:[hhcommonClass GetFileDocPath:[arrayobjectAtIndex:i]] error:nil];

    }

    return  array.count;

}

 

 

 

 

在xxdata.m中的应用(解析数据中的应用):

//pageNum是做的分页

NSString *jsonStr=[[NSString alloc]init];

    if ([[NSString alloc]initWithFormat:@"list%d",pageNum]).length==0) {

        //NSData类型的返回值转换成NSString类型

        jsonStr =[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

        [hhcommonClass WriteStrToCacheFile:jsonStr fileName: [[NSString alloc]initWithFormat:@"list%d",pageNum]];

    }else{

            jsonStr= [hhcommonClass  ReadStrFromCacheFile: [[NSString alloc]initWithFormat:@"list%d",pageNum]];

          }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:193538次
    • 积分:2655
    • 等级:
    • 排名:第13673名
    • 原创:69篇
    • 转载:23篇
    • 译文:1篇
    • 评论:10条
    文章分类
    最新评论