IOS/swift 异步缓存文件
来源:互联网 发布:00后直播软件 编辑:程序博客网 时间:2024/06/11 15:33
#import "DownLoadMp3.h"
#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)
static DownLoadMp3 *sharedObj =nil;
NSMutableArray *arrList;
@implementation DownLoadMp3
+ (DownLoadMp3 *) sharedInstance
{
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
arrList=[[NSMutableArrayalloc] init];
sharedObj=[[DownLoadMp3alloc] init];
});
returnsharedObj;
}
+ (id) allocWithZone:(NSZone *)zone//第三步:重写allocWithZone方法
{
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedObj=[superallocWithZone:zone];
});
returnsharedObj;
}
- (id) copyWithZone:(NSZone *)zone//第四步
{
returnself;
}
-(void)downLoadUrl:(NSString *)fileUrl{
if (fileUrl==nil||[fileUrllength]==0) {
return;
}
if (!([fileUrlhasPrefix:@"http://"]||[fileUrlhasPrefix:@"https://"])) {
return;
}
if (![arrListcontainsObject:fileUrl]) {
[arrListaddObject:fileUrl];
}
[NSThreaddetachNewThreadSelector:@selector(downloadMp3)toTarget:selfwithObject:nil];
}
-(void)downloadMp3{
NSString *urlString = [selfgetMp3Url];
while (urlString!=nil && [urlStringlength]>0) {
@try{
dispatch_async(kBgQueue, ^{
NSData *data = [NSDatadataWithContentsOfURL:[NSURLURLWithString:urlString]];
if ([datalength]==0) {
NSLog(@"%@ ++++++++++++++++++++++++++++++++++++++",urlString);
}else{
NSLog(@"%@ ++++++++++++++++++++++++++++++++++++++ %lu",urlString, [datalength]);
}
});
[NSThreadsleepForTimeInterval:0.1];
}@catch (NSException * e) {
break;
}
urlString = [selfgetMp3Url];
}
}
-(NSString *)getMp3Url{
NSMutableString *str=[[NSMutableStringalloc] init];
@synchronized(arrList){
if([arrListcount]==0)returnnil;
while(arrList.count>5)[arrListremoveObjectAtIndex:0];
[str setString:arrList[0]] ;
[arrListremoveObjectAtIndex:0];
return str;
}
}
@end
- IOS/swift 异步缓存文件
- iOS-Swift-清理缓存
- swift 文件缓存
- iOS开发swift版异步加载网络图片(带缓存和缺省图片)
- iOS异步加载缓存图片
- Swift之缓存文件处理
- ios swift 文件存取
- iOS开发 - Swift实现清除缓存功能
- iOS 缓存文件管理
- ios-清除文件缓存
- iOS tableView的图片缓存异步加载
- IOS 文件管理 ,文件缓存
- IOS SWIFT 简单操作文件
- IOS 清除APP缓存文件
- 异步缓存,异步加载
- iOS: (库) 图片异步下载/缓存-SDWebImage的使用
- iOS: (库) 图片异步下载/缓存-SDWebImage的使用
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- 怎么把一个硬件的驱动程序打包到自己的应用程序的安装程序里
- 防范用户通过篡改 文件后缀名的方式欺骗服务器,使用二进制流的方式读取文件头文件,将头文件转换为16 进制
- 【shell脚本】mysql每日备份shell脚本
- 调用css时,用link 和 @import url 有什么区别
- 为什么接口中的常量必须使用public static final修饰
- IOS/swift 异步缓存文件
- 联诚发(LCF)教你LED租赁屏知识
- 使用@-ms-viewport属性 让网站自动适应不同的IE10窗口大小
- 全局变量和局部变量
- FFmpeg解码-Opencv数据显示-双线程调度
- SQL2008数据库操作出现异常!具体信息: 列名 '旭阁' 无效.
- Android基于wheelView的自定义日期选择器(可拓展样式)
- C和C++动态内存的申请与释放思考(动态多维数组空间分配)
- android 巧妙利用反射机制得到ListView中的view