AFDownloadRequestOperation
今天在ios上使用AFDownloadRequestOperation做下载,这个东西很好的对AFNetworking进行了扩充,使下载更方便快捷。
下载地址:https://github.com/steipete/AFDownloadRequestOperation.git
但是请注意,AFDownloadRequestOperation是使用ARC编写的。所以没使用ARC的项目肯定会出错的,但是代码中也没提示没有开启ARC,
今天我就遇到这问题了,刚开始不知道啊,所以一直在下载结束,从缓存文件夹将文件拷贝到目标文件夹中的时候出错,也就是下面代码的地方出错, 出错原因是_targetPath已经被释放了, 当时时间紧,也没仔细看,直接自己写了个下载的方法。
@synchronized(self) {
[[NSFileManager new] moveItemAtPath:[self tempPath] toPath:_targetPath error:&localError];
if (localError) {
_fileError = localError;
}
}
今天晚上闲着没事去github上逛的时候,刚好看到作者两天前更新了,有人提出这个issue,看作者回复才知道是ARC的问题,不过作者更新了代码,加了下面的代码,如果没有开启ARC,会报错。
#if !__has_feature(objc_arc)
#error "Compile this file with ARC"
#endif
最后还是Use -fobjc-arc to use it in a non-arc project. 对AFDownloadRequestOperation加上-fobjc-arc再用吧。