摘要:
iOS 内存优化包括两部分:1、使用不当导致的内存泄漏;2、大量加载数据及使用导致的内存警告。 1、修饰关键字的错误使用(weak,strong错误使用)2、循环引用3、定时器,通知使用后不销毁4、动画不主动停止,不清理动画资源5、手动开辟内存不释放6、单例(不常用的使用懒加载,用完之后释放掉)7、
阅读全文
posted @ 2020-02-24 11:32
xiao孛
阅读(293)
推荐(0)
摘要:
handyJson使用原理: 1、获取实例对象的起始指针,移动到有效起点 2、通过Mirror获取每一个字段的字段名和字段类型 3、根据字段名在Json中取值,转换为和字段一样的类型,通过指针写入 4、根据本字段类型的占位大小和下一个字段类型,计算下一个字段的对齐起点 5、移动指针,处理赋值 参考原
阅读全文
posted @ 2020-02-24 11:28
xiao孛
阅读(1828)
推荐(0)
摘要:
iOS 调用对象的方法发生了什么? 1、先根据对象的 isa 指针找到该对象的类对象,即该对象所属的类; 2、在该类对象的缓存方法列表里面查找该方法,找到即执行响应方法; 3、如果没找到,向该类对象的方法列表里面查找该方法,找到即执行响应方法; 4、如果没找到,根据该类对象的父对象指针,去父对象里去
阅读全文
posted @ 2020-02-22 16:29
xiao孛
阅读(360)
推荐(0)
摘要:
OC中的类在编译完成之后是结构体,分别包含了那些数据? struct objc_class { Class _Nonnull isa OBJC_ISA_AVAILABILITY; // 指向元对象的指针 #if !__OBJC2__ Class _Nullable super_class OBJC2
阅读全文
posted @ 2020-02-22 15:50
xiao孛
阅读(281)
推荐(0)
摘要:
swift 逃逸闭包和非逃逸闭包的区别 逃逸闭包:闭包做为函数的参数传递时,在函数体结束后被调用,我们就说这个闭包逃离了这个函数体的作用域,这个闭包是逃逸型的闭包,使用@escaping来标注。 非逃逸型的闭包:在函数体结束前被调用,闭包是非逃逸型的闭包。 class NetworkManger {
阅读全文
posted @ 2020-02-15 21:57
xiao孛
阅读(1292)
推荐(0)
摘要:
协议 定义: 只是声明了一些方法和属性。类,结构体或枚举都可以遵循协议,并提供具体的实现来完成协议定义的方法和功能。 使用:1、swift:协议定义参数和方法,通过extension来默认具体实现或者代理来实现。 2、OC:想为一个协议提供默认实现时,通常会提供一个基类,基类遵从协议并且提供默认实现
阅读全文
posted @ 2020-02-15 15:04
xiao孛
阅读(288)
推荐(0)
摘要:
KVO的实现原理:KVO是键值监听,需要知道一个对象的属性的变化时做出相应。用法:1、添加监听addObserver 2、当所观察的属性值发生改变时调用的函数observalue: ForKeyPath:原理:1、当添加了监听之后,对象的isa指针指向的是 NSKVONotifying_ 的一个类,
阅读全文
posted @ 2020-02-14 20:17
xiao孛
阅读(522)
推荐(0)
摘要:
设置 tableHeaderView 的高度
阅读全文
posted @ 2019-04-17 13:47
xiao孛
阅读(3425)
推荐(0)
摘要:
关于导航栏右滑返回的工具库 FDFullscreenPopGesture 是 OC 版本,用了 runtime 等各种骚操作 关于 swift ,我在 UINavigationController 的 viewDidLoad 方法中 这样就可以达到的效果了。
阅读全文
posted @ 2019-01-18 22:38
xiao孛
阅读(957)
推荐(0)
摘要:
公司出需求,要让 h5链接直接打开用户的 app,如果没有安装 app 直接跳转到 appStore 这就需要给 app 配置 schemes 即可 1、在Info.plist中 LSApplicationQueriesSchemes 添加自己的 scheme 2、往下面滚动,还是 Info.pli
阅读全文
posted @ 2019-01-11 12:01
xiao孛
阅读(682)
推荐(0)