iOS开发中的一些缓存机制

/**
* 获取本地视频缓存目录路径
*/
+ (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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值