首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Ios面试点
订阅
用户2633609644215
更多收藏集
微信扫码分享
微信
新浪微博
QQ
38篇文章 · 0订阅
iOS 内存管理
如图,就是循环引用的情况,A、B 互相引用无法释放。 代理都是用弱指针,以避免循环引用,即避免上面的情况。 block 可以捕获外界的变量,控制器中的 block 引用 self ,block 的结构体将有一个强指针指向 self(控制器)(如下面代码),如果 block 又是…
iOS App后台保活
iOS13.0+的设备,支持多场景,共有上图中的Unattached、Foreground Inactive、Foreground Active、Forground Inactive、Background、Suspended 6种状态。 上图是低于iOS13.0的设备端App的…
iOS概念攻坚之路(六):事件传递与响应
这篇文章主要想弄清楚事件(如触摸屏幕)产生后,系统是如何通知到你的 App,在 App 内部是如何进行传递,最终又是如何确定最终的响应者的。 这些肯定是有规则的,在 App 内部,一个事件会按照一个规则(视图层级关系)去遍历寻找这个事件的最佳响应者,但是这个响应者有可能不处理事…
深入理解 YYCache
YYCache 是一个高性能的缓存框架,由 ibireme 开发,项目中使用到了 YYCache 作为缓存方案,下面就来掰扯一下它的实现机制,解释它高性能的来由,LRU 算法的实现,使用到的锁,以及删除缓存的时机等,另外还有一些框架我觉得可能存在的问题。 苹果也有自己的缓存方案…
iOS - 关于 KVO 的一些总结
这篇文章是关于 iOS 中 KVO(Key-Value Observing)的详细总结,包括 KVO 的概念、基本使用、进阶使用、实现原理等。
深入浅出 RunLoop(一):初识
RunLoop不是一个简单的do...while循环,它涉及到用户态和内核态之间的切换。 没有消息需要处理时,休眠线程以避免资源占用。从用户态切换到内核态,等待消息; 通过调用mach_msg()函数来转移当前线程的控制权给内核态/用户态。 如果没有RunLoop,main()…
iOS应用重签名技术
了解了iOS应用签名之后,发现苹果就是通过签名来验证我们的证书能否能签名我们的App,那我们能不能用我们的证书对别人的App进行签名呢?理论上只要我们有了这个证书就能对这个App进行签名,那么我们就可以用我们的证书对其他App进行签名。 平常我们使用Xcode开发,我们基本上没…
weak 的原理探析
我想了想说,就是把 SideTables 里 weak_table 散列表中持有这个对象的 referent 指针置为 nil ,这个 weak 对象就被释放了,具体释放时机是这个对象dealloc 的时候调用了 objc_destructInstance 时候检查散列表清理。…
iOS 底层探索 - 类拓展和关联对象
前面我们探索了 iOS 中类和分类的加载,关于类这一块的内容,我们还有一些坑没有填,比如类拓展和关联对象,今天让我们一起填下这块的坑。 关于类拓展的具体定义,大家可以直接参考 Apple 对于类拓展的说明。 我们在 Xcode 中创建 Objective 类型的文件的时候,可以…
objc_msgSend分析-动态解析+消息转发
没找到的话在当前class的方法列表中进行查找,然后在父类的cache和方法列表中进行慢速查找,依次往上查询。 如果查找过程中遇到父类==nil或者父类cache中的imp=imp_forward,开始执行一次方法解析并返回结果。 检测当前类及其父类是否实现+resolveIn…