普帅同学的博客

心里有光,就不怕远处的黑暗

iOS 多线程之NSOperation、NSOperationQueue

NSOperation、NSOperationQueue 是苹果为我们提供的一项多线程解决方案,它是对 GCD 的更高一层的封装,面向对象。比起GCD更加简单易用、代码可读性也更好。 基本认识 在 NSOperation 中也有类似任务和队列的概念。我们把任务称作操作,把队列称作操作队列。 操作(Operation):执行操作的意思,换句话说就是你在线程中执行的那段代码。 在 GCD......
iOS

UIView 与 CALayer的学习

我们很清楚 UIView 和 CALayer 之间的区别,但是当面试官问了我 anchorpoint 与 centerPoint 之间的区别的时候,我就知道面试GG了。下来之后,就抓紧了解了一下,并深入学习了 UIView 的绘制过程,整理了这篇文章。 UIView 和 CALayer 的区别 老生长谈的话题了,大部分人也能流畅的回答其两者的区别。但是除了第一点之外,其他区别的原因是什么......
iOS

Objective-C 中 load 和 initialize 方法

Objective-C 中绝大部分的类都继承自 NSObject 类。而在 NSObject 类中有两个特殊的类方法 + load 和 + initialize,用于类的初始化。 load 和 initialize 的共同特点 load 和 initialize 有很多共同点,比如: 在不考虑开发者主动使用的情况下,系统最多调用一次 如果父类和子类都被调用,父类的调用一定在子类之前 都......
iOS

RunLoop的深入学习

RunLoop 是什么? RunLoop 是和线程紧密相关的一个基础组件。顾名思议就是循环运行。按照 OC 的思路,RunLoop 其实就是一个对象,这个对象管理了其需要处理的事件和消息并提供一个入口函数来循环执行事件。平常,一般的 while 循环会让 CPU 处于忙等状态,而 RunLoop 则是一种“闲等”,当没有事件时,RunLoop 会进入休眠状态,有事件发生时, RunLoop ......
iOS

iOS 响应者链

UIView 的指责之一是处理事件,一个视图是一个事件响应者,可以处理点击等事件。而这些事件就是在 UIResponder 类中定义的。 一个 UIResponder 类为那些需要响应并处理事件的对象定义了一组接口。这些事件主要分为两类:触摸事件和运动事件。 在 UIKit 中,UIApplication、UIView、UIViewController 这几个类都是直接继承自 UIRes......
iOS

Http持久连接

HTTP 持久连接(也称为HTTP keep-alive 或 HTTP connection reuse)是使用同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每个新的请求/应答打开新的连接的方法。 版本发展 在 HTTP 1.0 中,没有官方的 keepalive 操作。通常操作是在先有协议上新增一个指数。如果浏览器支持 keep-alive,它会在请求的包头中添加Conn......

iOS 应用生命周期

iOS 应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本infrastructure给所有 app 来运行,而你提供自己编写的代码来定制app的外观和行为。因此,了解iOS infrastructure 和它们如何工作对编写app是很有帮助的。 iOS 应用程序的启动执行顺序 启动顺序 首先,来了解一下这张图 以上,就是一个应用程......
iOS

TCP/IP 协议学习笔记

一般来说,TCP/IP 是利用IP进行通信时所必须用到的协议群的统称。具体点,IP或ICMP、TCP或UDP、TELENT或ETP、以及HTTP等都属于TCP/IP协议,而TCP/IP泛指这些协议。 TCP/IP协议分层模型 网络协议通常分为不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议......

“KVC/KVO的使用以及实现原理”

概念 KVC : 即 Key-Value-Coding,用于键值编码。作为 cocoa 的一个标准化组成部分,它是基于 NSKeyValueCoding 非正式协议的机制。简单来说,就是直接通过 key 值对对象的属性进行存取操作,而不需要调用明确的存取方法(set 和 get 方法 )。基本上所有的 OC 对象都支持 KVC。 KVO : 即 Key-Value-Observin......
iOS

初探 iOS 内存管理

引言: ARC的出生及成长背景 苹果在 2011 年的时候,在 WWDC 大会上提出了自动的引用计数(ARC)。ARC 背后的原理是依赖编译器的静态分析能力,通过在编译时找出合理的插入引用计数管理代码,从而彻底解放程序员。 在 ARC 刚刚出来的时候,业界对此黑科技充满了怀疑和观望,加上现有的 MRC 代码要做迁移本来也需要额外的成本,所以 ARC 并没有被很快接受。直到 2013 年左右......
iOS