iOS开发中的一些缓存机制

来源:互联网 发布:nba骑士数据 编辑:程序博客网 时间:2024/06/02 03:10

/**
* 获取本地视频缓存目录路径
*/
+ (NSString *) videoCacheDir {
return [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@”/default//com.sportq.fit.AFNetworkingCache/”];
}

/**
* 获取本地图片缓存目录路径
*/
+ (NSString *) imageCacheDir {
return [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingString:@”/default//com.sportq.fit.SDWebImageCache/”];
}

/**
* 获取本地数据批量缓存目录路径
*/
+ (NSString *) dataCacheBatchDir {
return [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingString:@”/default/dataCacheBatch.plist”];
}

/**
* 获取本地数据单个缓存目录路径
*/
+ (NSString *) dataCacheDir {
return [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingString:@”/default/dataCache.plist”];
}

/**
* 获取本地视频缓存目录URL
*/
+ (NSURL *) videoCacheURL {
return [NSURL URLWithString:[NSString stringWithFormat:@”%@/default//com.sportq.fit.AFNetworkingCache/”,[[NSFileManager defaultManager] URLForDirectory:NSCachesDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil]]];
}

/**
* 获取本地图片缓存目录URL
*/
+ (NSURL *) imageCacheURL {
return [NSURL URLWithString:[NSString stringWithFormat:@”%@/default//com.sportq.fit.SDWebImageCache/”,[[NSFileManager defaultManager] URLForDirectory:NSCachesDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil]]];
}

/**
* check本地是否存在指定文件(会根据文件后缀名自动判定到哪个目录寻找文件)
*
* @param fileName 文件名或文件url
*
* @return Y:存在;N:不存在
*/
+ (BOOL) fileExist:(NSString *)fileName {
if ([NSString isEmpty:fileName]) {
return NO;
}
// 获取文件名称
fileName = [[[fileName componentsSeparatedByString:@”/”] lastObject] componentsSeparatedByString:@”?”][0];
// 获取文件后缀名
NSString *extension = [[fileName componentsSeparatedByString:@”.”] lastObject];
NSString *dir = [CacheManager videoCacheDir];
if ([@”jpg” isEqualToString:extension]) {
dir = [CacheManager imageCacheDir];
}

// check 文件在指定目录是否存在return [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@",dir,fileName]];

}

/**
* 根据链接读取本地文件
*
* @param fileName
*
* @return 存在则返回本地URL,本地不存在返回nil
*/
+ (NSURL )readFileUrl:(NSString )fileName {
// 获取文件名称
fileName = [[[fileName componentsSeparatedByString:@”/”] lastObject] componentsSeparatedByString:@”?”][0];
// 获取文件后缀名
NSString *extension = [[fileName componentsSeparatedByString:@”.”] lastObject];

NSString *dir = [CacheManager videoCacheDir];if ([@"jpg" isEqualToString:extension]) {    dir = [CacheManager imageCacheDir];}NSString *filePath = [NSString stringWithFormat:@"%@/%@",dir,fileName];if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {    return [NSURL fileURLWithPath:filePath];} else {    return nil;}

}

/**
* 根据链接读取本地文件地址
*
* @param fileName
*
* @return 存在则返回本地URL,本地不存在返回网络URL
*/
+ (NSURL )readFileUrlOrWebUrl:(NSString )fileName {
NSURL *localUrl = [self readFileUrl:fileName];
if (localUrl) {
return localUrl;
} else {
return [fileName toUrl:image_big];
}
}

/**
* 根据链接删除本地文件
*
* @param fileName
*
* @return Y:删除成功,N:删除失败
*/
+ (BOOL)deleteFileWithUrl:(NSURL *)fileURL {
NSFileManager* fm = [NSFileManager defaultManager];
__block NSError* error = nil;
return [fm removeItemAtURL:fileURL error:&error];
}

/**
* check本地是否存在文件集合(会根据文件后缀名自动判定到哪个目录寻找文件)
*
* @param fileUrlList 文件名或文件url
*
* @return Y:所有文件都存在;N:任意一个文件不存在
*/
+ (BOOL) fileListExist:(NSMutableArray

0 0
原创粉丝点击