项目背景 题库作为阔知学堂和ES企培的核心业务功能的一部分,承担考试、练习和作业等形式的答题模块,学员使用频率较多,是有着重要价值的部分。但是题库和课程课时任务相互耦合,题库...
【原创博文,转载请注明出处!】准备学习下Shell命令,俗话说“好记性不如烂笔头”,做点笔记方便以后查找。详细学习途径请移步 --> Shell菜鸟教程 (一) Shell环...
引言 本来“一天一点xib”系列就九篇文章,但在留言中有一个朋友提出了两点疑问: 1.为什么获得重用cell的时候用的是dequeueReusableCellWithIden...
原文链接 不管是应用秒变幻灯片,还是启动过久被杀,基本都是开发者必经的体验。就像没人希望堵车一样,卡顿永远是不受用户欢迎的,所以如何发现卡顿是开发者需要直面的难题。虽然导致卡...
__block修饰符的内存管理 当block在栈上时,并不会对__block变量产生强引用 当__block修饰指针变量时,会在成的__Block_byref_xxx_0结构...
block的类型 block有3种类型,可以通过调用class方法或者isa指针查看具体类型,最终都是继承自NSBlock类型 __NSGlobalBlock__ (_NSC...
block的变量捕获(capture) 为了保证block内部能够正常访问外部的变量,block有个变量捕获机制 当block发生值捕获时,底层的block结构体会生成相对应...
Block的本质 block本质上也是一个OC对象,它内部也有个isa指针 以上OC代码生成的C++代码为: 其中的生成的C++结构体分别是: 代码块生成为函数 block最...
KVO 是 Objective-C 对观察者模式的实现。也是 Cocoa Binding 的基础。当被观察对象的某个属性发生更改时,观察者对象会获得通知。 Apple 的文档...
一个objc对象如何进行内存布局? 所有父类的成员变量和自己的成员变量都会存放在该对象所对应的存储空间中. 根对象就是NSObject,它的superclass指针指向nil...
OC中的Category(三) OC中+initialize函数加载和调用 OC对象是在查找方法时判断自己有没有初始化,如果没有就会调用初始化方法,在调用自己的初始化方法之前...
OC中的Category(二) +load函数加载和调用 +load方法会在runtime加载类、分类时调用 每个类、分类的+load,在程序运行过程中只调用一次 调用顺序:...
在OC中给一个类添加分类后,程序在编译之后生成的底层结构是struct category_t,里面存储着分类的name(类名)、 instanceMethods(对象方法)、...