iOS 离屏渲染
摘要:1.什么是离屏渲染 离屏渲染(offscreen-rendering)顾名思义为屏幕外的渲染,即渲染的结果不会直接呈现到当前屏幕上,而是等待合适的时机才会被显示。 正常情况下,在当前屏幕显示的内容,由 GPU 渲染完成后放到当前屏幕的帧缓存区,不需要额外的渲染空间。我们知道 iPhone 的屏幕刷新
阅读全文
posted @
2020-02-26 20:48
xiao孛
阅读(448)
推荐(0) 编辑
iOS 内存优化
摘要:iOS 内存优化包括两部分:1、使用不当导致的内存泄漏;2、大量加载数据及使用导致的内存警告。 1、修饰关键字的错误使用(weak,strong错误使用)2、循环引用3、定时器,通知使用后不销毁4、动画不主动停止,不清理动画资源5、手动开辟内存不释放6、单例(不常用的使用懒加载,用完之后释放掉)7、
阅读全文
posted @
2020-02-24 11:32
xiao孛
阅读(273)
推荐(0) 编辑
Swift handyJson使用原理
摘要:handyJson使用原理: 1、获取实例对象的起始指针,移动到有效起点 2、通过Mirror获取每一个字段的字段名和字段类型 3、根据字段名在Json中取值,转换为和字段一样的类型,通过指针写入 4、根据本字段类型的占位大小和下一个字段类型,计算下一个字段的对齐起点 5、移动指针,处理赋值 参考原
阅读全文
posted @
2020-02-24 11:28
xiao孛
阅读(1818)
推荐(0) 编辑
iOS 调用对象的方法发生了什么?
摘要:iOS 调用对象的方法发生了什么? 1、先根据对象的 isa 指针找到该对象的类对象,即该对象所属的类; 2、在该类对象的缓存方法列表里面查找该方法,找到即执行响应方法; 3、如果没找到,向该类对象的方法列表里面查找该方法,找到即执行响应方法; 4、如果没找到,根据该类对象的父对象指针,去父对象里去
阅读全文
posted @
2020-02-22 16:29
xiao孛
阅读(349)
推荐(0) 编辑
iOS 探究对象的本质
摘要:OC中的类在编译完成之后是结构体,分别包含了那些数据? struct objc_class { Class _Nonnull isa OBJC_ISA_AVAILABILITY; // 指向元对象的指针 #if !__OBJC2__ Class _Nullable super_class OBJC2
阅读全文
posted @
2020-02-22 15:50
xiao孛
阅读(279)
推荐(0) 编辑
swift 逃逸闭包和非逃逸闭包的区别
摘要:swift 逃逸闭包和非逃逸闭包的区别 逃逸闭包:闭包做为函数的参数传递时,在函数体结束后被调用,我们就说这个闭包逃离了这个函数体的作用域,这个闭包是逃逸型的闭包,使用@escaping来标注。 非逃逸型的闭包:在函数体结束前被调用,闭包是非逃逸型的闭包。 class NetworkManger {
阅读全文
posted @
2020-02-15 21:57
xiao孛
阅读(1256)
推荐(0) 编辑
iOS 关于协议的一些总结
摘要:协议 定义: 只是声明了一些方法和属性。类,结构体或枚举都可以遵循协议,并提供具体的实现来完成协议定义的方法和功能。 使用:1、swift:协议定义参数和方法,通过extension来默认具体实现或者代理来实现。 2、OC:想为一个协议提供默认实现时,通常会提供一个基类,基类遵从协议并且提供默认实现
阅读全文
posted @
2020-02-15 15:04
xiao孛
阅读(279)
推荐(0) 编辑
iOS KVO和KVC的原理
摘要:KVO的实现原理:KVO是键值监听,需要知道一个对象的属性的变化时做出相应。用法:1、添加监听addObserver 2、当所观察的属性值发生改变时调用的函数observalue: ForKeyPath:原理:1、当添加了监听之后,对象的isa指针指向的是 NSKVONotifying_ 的一个类,
阅读全文
posted @
2020-02-14 20:17
xiao孛
阅读(513)
推荐(0) 编辑