自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 观察者模式

苹果其实在语言层面为我们做了很多事,比如Category实现装饰模式的意图,target-action实现命令模式意图等等,对于观察者模式,苹果也提供了KVO和通知中心,给开发者提供了极大的遍历。观察着模式即一个对象发出广播,然后某些对象可以在得知这个广播之后做相应的反应。KVO用来监控某个变量,是一种局部性的监听机制,使用方式如下:首先,为被检测的变量添加一个观察者:

2016-04-06 20:35:08 363

转载 iOS性能优化

一:性能优化策略这一系列文章是我的读书笔记,整理一下,也算是温故而知新。性能问题的处理流程发现/重现问题利用工具剖析形成假设改进代码和设计在以上的四个步骤中循环反复,直到问题解决。Profile!不要猜!性能优化的主要策略:不要做无用功:不要在启动时花几百ms来做logging,不要为同样的数据做多次查询试图重用:对于

2016-04-03 18:38:03 279

转载 基于AVPlayer 自定义播放器

在iOS开发中,播放视频通常有两种方式,一种是使用MPMoviePlayerController(需要导入MediaPlayer.Framework),还有一种是使用AVPlayer。关于这两个类的区别可以参考http://stackoverflow.com/questions/8146942/avplayer-and-mpmovieplayercontroller-differences,简而言

2016-04-03 17:09:51 807

原创 NSURLSession复用

#####为什么要复用? iOS系统默认设置下: 对同一个IP发起的最大链接是数是 4,  OSX是6. 每新建一个session,都会建立一条连接, 所以这样就可能会造成session不够用,无法满足某些并发连接较多的业务场景~ 这个时候系统是有提供一个全局的 session 供我们使用的. [NSURLSession shareSession] 这个方法可以获得~ 但是这个se

2016-03-26 13:15:53 730

原创 内存管理的一点补充笔记

概念一:  逻辑地址 : 32位操作系统有 4G 地址              物理地址 : 实际硬盘地址              地址重定向 : 逻辑地址到物理地址的映射 (动态映射)进程线程调度: 信号量,PV操作  经典问题:  1, 生产者消费者问题    2,读者写者问题     3,

2016-03-24 22:08:16 314

原创 NSURLSession复用

#####为什么要复用? iOS系统默认设置下: 对同一个IP发起的最大链接是数是 4, OSX是6. 每新建一个session,都会建立一条连接, 所以这样就可能会造成session不够用,无法满足某些并发连接较多的业务场景~ 这个时候系统是有提供一个全局的 session 供我们使用的. [NSURLSession shareSession] 这个方法可以获得~ 但是这个ses

2016-03-21 17:52:18 792 1

原创 NSURLConnection,NSURLSession断点续传的实现以及对比

1, NSURLConnection实现断点续传首先明确几个关键点:1, cancel方法. 首先NSURLConnection有一个cancel方法,可以取消正在进行的下载操作,但是取消后无法再恢复当前下载链接.(这个和操作队列的挂起是本质区别的). 当重现建立下载链接的时候,又是从头开始下载了.2, http请求头,range字段. 通过设定renge头,我们可以限定下载资源的哪一部分

2016-03-19 12:57:50 613

原创 NSURLConnection使用详解

NSURLConnection的历史1sendAsynchronousRequest异步下载2代理方法下载错误的代理3代理方法下载正确的代理方法4利用NSFileHandle拼接文件5利用NSOutputStream拼接文件6大文件下载多线程NSURLConnection7大文件下载暂停下载8大文件下载断点续传9 注意事项NSURLConnection的历史 iOS2.0推出的

2016-03-18 22:34:20 402

原创 关于etag Last-Modified

请求流程Etag由服务器端生成,客户端通过If-Match或者说If-None-Match这个条件判断请求来验证资源是否修改。常见的是使用If-None-Match.请求一个文件的流程可能如下:====第一次请求===1.客户端发起 HTTP GET 请求一个文件;2.服务器处理请求,返回文件内容和一堆Header,当然包括Etag(例如"2e681a-6-5d

2016-03-18 15:13:22 491

原创 设计图片下载器的过程以及问题

笔记

2016-03-18 11:26:35 367

转载 iOS开发中的循环引用问题

计时器NSTimerblock委托delegate计时器NSTimerNSTimer经常会被作为类的成员变量,而NSTimer初始化时要指定self为target,造成循环引用。 另一方面,若timer一直处于validate的状态,则其引用计数将始终大于0。先看一段NSTimer使用的例子(ARC模式):解决方案: 自定义类: WSWeakTimerTarget.h文件@interface

2016-03-17 23:12:29 303

转载 GCD深度分析

概念GCD介绍一 基本概念和Dispatch QueueGCD介绍二 多核心的性能GCD介绍三 Dispatch SourcesGCD介绍四 完结概念:程序中同步和异步是什么意思?有什么区别?解释一: 异步调用是通过使用单独的线程执行的。原始线程启动异步调用,异步调用使用另一个线程执行请求,而与此同时原始的线程继续处理。 同步调用则在继续之前必须等待响应或返回值。如果不允许调用继续即无响

2016-03-17 17:58:19 435

转载 并发编程之Operation Queue

并发编程之Operation Queue随着移动设备的更新换代,移动设备的性能也不断提高,现在流行的CPU已经进入双核、甚至四核时代。如何充分发挥这些CPU的性能,会变得越来越重要。在iOS中如果想要充分利用多核心CPU的优势,就要采用并发编程,提高#PU的利用率。iOS中并发编程中主要有2种方式Operation Queue和GCD(Grand Central Dispatch)。下面就来先来说一

2016-03-17 17:07:49 259

转载 并发编程之Operation Queue

并发编程之Operation Queue异步调用和并发为什么Operation QueueNSOperation简介注:本文转自cocoaChina 并发编程之Operation Queue随着移动设备的更新换代,移动设备的性能也不断提高,现在流行的CPU已经进入双核、甚至四核时代。如何充分发挥这些CPU的性能,会变得越来越重要。在iOS中如果想要充分利用多核心CPU的优势,就要采用并发编程

2016-03-17 16:57:48 345

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除