上一页 1 2 3 4 5 6 ··· 16 下一页
摘要: Category的实现原理 Category编译之后的底层结构是struct category_t,里面存储着分类的对象方法、类方法、属性、协议信息 在程序运行的时候,runtime会将Category的数据,合并到类信息中(类对象、元类对象中) Category和Class Extension的区 阅读全文
posted @ 2021-01-19 18:44 俊华的博客 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 1、什么是内存对齐 还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占4+1=5byte;但是实际上,通过运行程序得到的结果是8 byte,这就是内存对齐所导致的。 //32位系统 #include<stdi 阅读全文
posted @ 2021-01-19 12:04 俊华的博客 阅读(1619) 评论(0) 推荐(0) 编辑
摘要: KVC的全称是Key-Value Coding,即“键值编码”,可以通过指定的key来访问相应的对象属性。 常见的API有: (void)setValue:(id)value forKeyPath:(NSString *)keyPath; (void)setValue:(id)value forKe 阅读全文
posted @ 2020-11-24 15:57 俊华的博客 阅读(531) 评论(0) 推荐(0) 编辑
摘要: KVO全称为Key-Value Observing, 即键值监听,用于指定对象属性值的改变。 问题一、iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?) 利用RuntimeAPI动态生成一个子类,并且让instance对象的isa指向这个全新的子类 当修改instance对象的属性时, 阅读全文
posted @ 2020-11-23 20:31 俊华的博客 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 实例对象( instance)、类对象(class)、元类对象(meta-class)的内部结构分析 本文使用的objc源码版本为objc4-756.2。 Class本质上为一个结构体类型: typedef struct objc_class *Class; 实例对象的定义 struct objc_ 阅读全文
posted @ 2020-08-27 19:10 俊华的博客 阅读(709) 评论(0) 推荐(0) 编辑
摘要: isa指针 instance对象的isa指向class对象,当调用对象方法时,通过instance对象的isa找到class,最后找到对象方法的实现进行调用。 class对象的isa指向meta-class,当调用类方法时,通过class对象的isa找到meta-class,最后找到类方法的实现进行 阅读全文
posted @ 2020-08-27 18:49 俊华的博客 阅读(260) 评论(0) 推荐(0) 编辑
摘要: weak 关键字的运用在 iOS 当中属于基础知识,在面试的时候问 weak 的用处,就像两个 iOS 程序员见面寒暄问候一样普通了。 weak 的常见场景是在 delegate,block,NSTimer 中使用,以避免循环引用所带来的内存泄漏,这是教科书式的用法。 以下是一些有趣的应用。 wea 阅读全文
posted @ 2020-08-19 16:09 俊华的博客 阅读(796) 评论(0) 推荐(0) 编辑
摘要: weak和assign区别 经常会有面试题问weak和assign的区别,这里介绍一下。 weak和strong是对应的,一个是强引用,一个是弱引用。weak和assign的区别主要是体现在两者修饰OC对象时的差异。上面也介绍过,assign通常用来修饰基本数据类型,如int、float、BOOL等 阅读全文
posted @ 2020-08-19 16:04 俊华的博客 阅读(1143) 评论(0) 推荐(0) 编辑
摘要: 类属性 (Objective-C Class Properties) 官方解释 先看下它在Xcode8 release版本中官方给出的解释: Objective-C now supports class properties, which interoperate with Swift type p 阅读全文
posted @ 2020-08-19 15:54 俊华的博客 阅读(1500) 评论(0) 推荐(0) 编辑
摘要: 前言 这里面你将会了解到什么是优先级翻转、自旋锁、互斥锁。 绝大部分 Objective-C 程序员使用属性时,都不太关注一个特殊的修饰前缀,一般都无脑的使用其非默认缺省的状态,他就是 atomic。 1 @interface PropertyClass 2 3 @property (atomic, 阅读全文
posted @ 2020-08-19 15:52 俊华的博客 阅读(2586) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 16 下一页