一、Timer Profiler简述 使用时间分析器工具对系统CPU上运行的进程执行低开销、基于时间的采样。随着时间的推移,多核和线程的使用效率越高,应用程序的性能就越好。 ...
一、Timer Profiler简述 使用时间分析器工具对系统CPU上运行的进程执行低开销、基于时间的采样。随着时间的推移,多核和线程的使用效率越高,应用程序的性能就越好。 ...
最近在看线程保活,发现了这个函数无法理解,根本原因还是这个函数的苹果文档没有深入理解,然后没有多做尝试。 先说结论,再说过程。结论:1)runMode:beforeDate只...
1、__weak修饰符的使用案例 在开发的过程中,可能回遇到循环引用的问题。所谓循环引用,当对象A持有了对象B,与此同时对象B同时也持有对象A时,此时对象A销毁需要对象B先销...
在平日编程中或阅读第三方代码时,category可以说是无处不在。category也可以说是OC作为一门动态语言的一大特色。category为我们动态扩展类的功能提供了可能,...
Method Swizzling Method-Swizzling实际就是更换方法所对应的实现函数(IMP),其主要作用是在运行时将一个方法的实现替换成另一个方法的实现,这就...
1、类中方法的存储 cache_t中的方法存储 cache_t cache方法缓存中,方法的存储是以SEL和IMP的形式。 class_data_bits_t中方法存储 在类...
1、Runtime的定义 将源代码转换为可执行的程序,通常要经过三个步骤:编译、链接、运行。 Objective-C 语言 是一门动态语言,在编译阶段并不知道变量的具体数据类...
Scheme的理解 我们都知道,苹果系统使用沙盒机制来保障用户的隐私和安全,一个App只能访问自己的沙盒,不能访问其他app的信息。这样保证了app的用户的信息的同时,也阻碍...
Block的定义 Blocks是C语言的扩充功能。可以用一句话来表示Blocks的扩充功能:带有自动变量(局部变量)的匿名函数。 Block的语法声明:返回值类型 (^变量名...
dispatch_once一次性函数 该函数对于block中的任务只执行一次。 在iOS开发过程中,经常使用dispatch_once去创建一个单例,来保证对象的唯一性。 函...
队列与任务 任务task 就是需要执行的操作,是GCD中放在block中,需要在线程中执行的那段代码。 执行方式,有两种: 同步执行把任务同步添加到指定的队列中。在队列中,之...
多线程原理 进程 进程是指在系统中正在运行的一个应用程序。(A process is an executing instance of an application. ) 每...
KVO概述 KVO,或者key-value observing,是可以对OC对象的属性进行观察,并在属性发生改变的的时候,发出通知的神奇魔法。之所以称之为神奇,是因为KVO是...
iOS KVC小结 KVC的概念 KVC,即Key-value coding,键值编码。给我们提供了一套更加直接的方式,来访问一个对象的属性,或者给对象的属性赋值。而不是通过...
markdown的标题 # 一级标题,在文字前面增加一个“#” ## 二级标题,在文字前面增加两个“##” ### 三级标题,在文字的前面增加三个“###” #### 四级标...