iOS笔记
文章平均质量分 92
Loopppppppp
一颗平平无奇的汤圆子
展开
-
iOS学习笔记【十一】——UICollectionViewLayout
iOS学习笔记——UICollectionViewLayout Summary UITableView 和 UICollectionView 在显示其子视图集的过程中仅扮演容器角色,且对子视图集真正的内容毫不知情。UICollectionView在此之上进行了进一步抽象。它将其子视图的位置,大小和外观的控制权委托给一个单独的布局对象。 布局继承自UICollectionViewLayout 抽象基类。iOS6 中以UICollectionViewFlowLayout类的形式提出了一个具体的布局实现。 /原创 2020-08-26 16:21:44 · 428 阅读 · 0 评论 -
iOS学习笔记【十】—— NSNotification
NSNotification 用于描述通知的类,一个NSNotification对象就包含了一条通知的信息 - (NSString*) name; // 通知的name - (id) object; // 携带的对象 - (NSDictionary*) userInfo; // 配置信息 NSNotificationCenter 是个单例类,负责添加通知add、发送通知post和移除通知remove NSNotificationQueue 通知队列,用于异步发送消息,这个异步并不是开启线程,而是把通知存原创 2021-06-30 09:44:41 · 317 阅读 · 0 评论 -
iOS学习笔记【五】——Runtime
iOS学习笔记【五】——Runtime 只做简单笔记???? 详细请戳标题链接???? key point:Objective-C 语言 是一门动态语言。在编译阶段并不知道变量的具体数据类型,也不知道所真正调用的哪个函数。把一些决定性的工作从编译阶段、链接阶段推迟到 运行时阶段 的机制,使得 Objective-C 变得更加灵活。 主要应用——消息机制、动态方法交换、Category分类、获取类属性/方法等 消息机制 方法调用 [receiver selector]在『编译阶段』被转换为objc_ms原创 2021-05-30 09:40:06 · 112 阅读 · 0 评论 -
iOS学习笔记【七】——引用计数管理
iOS学习笔记【七】——计数管理 SideTables 全局的SideTables——管理引用计数和weak指针 是一个全局的Hash表,里面的内容装的都是SideTable结构体。它使用对象的内存地址当它的key进行hash映射 使用分离锁来保证整个hash表的安全性和操作效率——每一个小单元格(SideTable)都带有一把锁,降低锁的粒度,并发操作 自旋锁 没有过多的自旋,临界区代码量较少 对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,不需要进行上下文切换原创 2021-03-31 19:22:39 · 226 阅读 · 0 评论 -
iOS学习笔记【八】——KVC & KVO
https://www.jianshu.com/p/829864680648 使用了 isa 混写(isa-swizzling)来实现 KVO,把被观察对象的 isa 指针指向这个新创建的子类,还重写了-class 方法并返回原来的类,造成类对象没有改变的“假象”。 系统会自动在set方法前后调用以下两个函数 + (BOOL)automaticallyNotifiesObserversForName { return YES; //默认 } - (void)setNow:(NSDate *)aDa原创 2021-03-31 18:23:15 · 157 阅读 · 1 评论 -
iOS学习笔记【六】—— Block
iOS学习笔记【六】—— Block 源码解析 转换前 OC 代码: int main () { void (^myBlock)(void) = ^{ printf("myBlock\n"); }; myBlock(); return 0; } 执行clang -rewrite-objc block.m,将OC转为C++ 源码: /* 包含 Block 实际函数指针的结构体 */ struct __block_impl { void *isa;原创 2021-03-31 09:15:46 · 84 阅读 · 0 评论 -
iOS学习笔记【三】——RunLoop
iOS学习笔记【三】——RunLoop原创 2020-08-19 20:27:07 · 95 阅读 · 0 评论 -
iOS学习笔记【四】——Autoreleasepool
iOS学习笔记【四】——Autoreleasepool原创 2021-03-30 15:50:45 · 187 阅读 · 0 评论 -
iOS学习笔记【二】——事件处理
iOS学习笔记【二】——事件处理 https://www.jianshu.com/p/2e074db792ba原创 2020-08-19 19:34:48 · 92 阅读 · 0 评论 -
iOS学习笔记【一】——对象相关
iOS学习笔记 OC对象的本质 https://www.jianshu.com/p/80d665c25d38 struct objc_object {private: isa_t isa; // 成员变量的值... }; struct _class_t { struct _class_t *isa; struct _class_t *superclass; void *cache; void *vtable; struct _class_ro_t *r原创 2020-12-01 16:49:24 · 111 阅读 · 0 评论