iOS 推荐一个下载用的第三方库

AFNetworking有下载功能,但是下载功能比较基本,要实现复杂下载功能需要自己写一些代码。今天在github上找到了一个下载功能的开源项目,非常不错,链接如下:https://github.com/thibaultCha/TCBlobDownload

无论是AFNetworking还是我提到的这个库,都利用了NSOperation,还利用了一个关键的函数NSURLConnection的 scheduleInRunLoop,这个函数的解释如下

Determines the run loop and mode that the connection uses to call methods on its delegate.

当把connection加入到运行operation的queue后,运行operation的线程就不会在发起请求后立即结束,而是会等待回调函数的调用,这就达到了在异步线程中发送并且接受网络数据的要求。如果使用Operation机能的同时,仅仅使用普通的connection的start方法,那么只用链接请求的发出是异步的,而他的回调方法依旧会在主线程中执行,而且无法通过限制OperationQueue的并发数来限制请求数量,因为那样仅仅能保证同时发出请求的并发数,发出请求后,没有等待回调,线程就结束了,又可以发出新的请求,这样的话往往所有的请求很快都发出了,不满足要求。

时间: 2024-10-07 09:36:09

iOS 推荐一个下载用的第三方库的相关文章

IOS开发笔记-百度地图(第三方库)

最近做了百度地图,在导入SDK后遇到了一些问题 编译错误: linker command failed with exit code 1 (use -v to see invocation) 想了很多办法,查了很多资料,最后终于解决. 可能原因: 1. 有重复的.m文件,或者未导入 解决办法:有重复的删除即可 在工作左边导航栏Target-->Build Phases-->compile Sources中,第三库库的所有.m文件都添加到里面 2.Valid Architectures 的值 在

最全面的iOS和Mac开源项目和第三方库汇总

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou

iOS开发笔记 - 用CocoaPods管理第三方库

在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确配置这些第三方库会非常的繁琐,还好我们有CocoaPods来做这件事情,就如同在Java的世界里有Maven和Gradle,当然Maven的作用不仅仅是第三依赖库管理.通过CocoaPods工具我们可以为项目添加被称为"Pods"的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本. ??CocoaPods意义体现在两个方面.第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段

iOS中如何使cocoapods管理第三方库

首先要进行Ruby环境搭建: 具体可以参考一下连接: http://blog.csdn.net/showhilllee/article/details/38398119 cocoapods基本的使用方法: 1.搜索第三方库在pods下支持的版本 例如项目中要是有AFNetWorking 在终端中输入 pod search AFNetWorking,可以查看到AFNetWorking最新的版本. 2.具体使用方法: >cd 到当前项目路径, >执行 vim Podfile,创建Podfile文件

IOS学习笔记29—提示框第三方库之MBProgressHUD

MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单.方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到.到GitHub上可以下载到项目源码https://github.com/jdg/MBProgressHUD,下载下来后直接把MBProgressHUD.h和MBProgressHUD.m拖入工程中就行,别忘了选择拷贝到工程.完了在需要使用的地方导入头文件就可以开始使用了.首先看下工程截图: 接下来是整个Demo的完整界面,这里我只选择出了几个常用

推荐一个Android开发懒人库 -- ButterKnife

ButterKnife -- 项目地址:https://github.com/JakeWharton/butterknife 都说程序员都是比较懒的,什么事情都想着让程序自动化帮忙减轻工作量,这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来. 解放控件对象实例化 也就是 findViewById(),一直以来的做法都是一个个定义,然后在 setContentView() 或 inflate() 之后一一来findViewById()进行

ios开发之 自适应屏九宫格(第三方库Masonry)

转自 http://blog.sina.com.cn/s/blog_13fd67a560102wil5.html //用来记录上一次创建的UILabel UILabel *lastLabel = nil; for (int i = 0; i < 9; i++) { UILabel *label = [UILabel new]; label.textAlignment = NSTextAlignmentCenter; label.text = [NSString stringWithFormat:

iOS 8:帮妹子调试第三方库 - RATreeView

关键字:RATreeView  妹子 周日晚上遇到一妹子用RATreeView(GitHub链接),想改变二级Cell高度.这库我也没接触过,但是,对方是妹子,明天还要交差,那就硬着头皮看代码吧.没想到此库结构非常清晰,真是业界良心.现在老了,很多事做完就忘,当是日志写写.下面记录下查找问题的过程. 1.先运行demo.如果跑不起来,那真是坑爹了.不过,免费的东西,也别要求太多,有代码就挺厚道的,毕竟提供了参考.demo被妹子改过,还好功能较单一. 2.看AppDelegate,找rootVie

iOS开发中抽屉效果的第三方库MMDrawerController的使用

1 // 2 3 // AppDelegate.m 4 5 // MMDrawerController 6 7 // 8 9 // Created by yl on 16/6/24. 10 11 // Copyright © 2016年 Itsimple. All rights reserved. 12 13 // 14 15 16 17 #import "AppDelegate.h" 18 19 #import "YLNavigationController.h"