iOS之block本质

block本质上也是一个Objective-C对象,它内部也有个isa指针如何验证? 书写一个含有参数的block,并且使用了外部变量,使用clang编译器,终端转成C++文件,查看底层实现```swiftint a = 1;int b = 2;...

RunLoop线程封装

我们经常在子线程中处理一些非UI的任务,我们知道子线程处理完任务后就会自动销毁,假设某个界面需要经常在子线程中处理事情,那么线程的不断创建,销毁也是消耗性能的,因此需求就来了:

RunLoop线程保活

我们经常在子线程中处理一些非UI的任务,我们知道子线程处理完任务后就会自动销毁,假设某个界面需要经常在子线程中处理事情,那么线程的不断创建,销毁也是消耗性能的,因此需求就来了:

RunLoop简介

RunLoop基本功能 1.保持程序的持续运行 2.处理App的各种事件(比如触摸事件,定时器事件) 3.节省CPU资源,提高程序性能,该做事时做事,该休息时候休息

多线程之信号量

需求:异步操作,比如网络请求,要求异步回调后拿到这个值,然后返回这个值需求分析:实际上这个应用场景是著名网络请求框架AFNNetworking一个

多线程GCD关键点理解

Grand Central Dispatch(GCD) 是 Apple 开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并发任务。在 Mac OS X 10....

多线程NSOperation与NSOperationQueue

NSOperation、NSOperationQueue 简介:NSOperation、NSOperationQueue 是苹果提供给我们的一套多线程解决方案,NSOperation、NSOperationQueue 是基于 GCD 更高一层的封...

多线程之NSOperationQueue分类的封装

1.使用runtime给NSOperationQueue分类添加block属性completionBlock 2.使用KVO监听私有属性operationCount 3.使用方法交换dealloc

Runtime方法交换的封装

声明一个头文件SwizzleMethod.h