首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS源码分析
订阅
一辈子的码农
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
iOS 如何实现Aspect Oriented Programming (上)
前言 在“Runtime病院”住院的后两天,分析了一下AOP的实现原理。“出院”后,发现Aspect库还没有详细分析,于是就有了这篇文章,今天就来说说iOS 是如何实现Aspect Oriented Programming。 目录 1.Aspect Oriented Progr…
iOS 网络监控框架 - Reachability 源码解读
Reachability 项目是 Apple 提供的一个官方 Demo, 用于演示如何使用 System Configuration framework 来监控 iOS 设备的网络状态。值得注意的是 Reachability 仅仅能检测到数据包是否可以离开本设备,而不能检测到数…
iOS AOP 框架 - Aspects 源码解读
Aspects 是 iOS 上的一个轻量级 AOP 库。它利用 method swizzling 技术为已有的类或者实例方法添加额外的代码,它是著名框架 PSPDFKit (an iOS PDF framework that ships with apps like Dropb…
iOS Hook 框架 AnyMethodLog与Aspects分析
如何让方法每次都走_objc_msgForward呢?把原来的 sel的IMP改成_objc_msgForward. 这时我们需要保存原来的 IMP 然后hook forwardInvocation ... 换成自己的实现,调用原来的IMP和新增的代码 相较于传统的Swizzl…
IPAPatch: 无需越狱向第三方应用注入代码
无需越狱向第三方应用注入代码
KZWFoudation基础配置之Debug模式
之所以有这个东西是因为方便调试和查问题,正常来说我们需要的基础功能包括切换环境,看日志,清缓存,限制网速测试等。还有一些的就是根据不同的业务场景来添加如快速访问一个网页,特殊测试需求的入口等。一定要注意这些功能都要判断debug,不要出现在线上!!! 切换环境的原理就是我们全局…
懒人做开发系列:利用Object-C特性埋点
Objective-C是一门简单的语言,95%是C。只是在语言层面上加了些关键字和语法。真正让Objective-C如此强大的是它的运行时。它很小但却很强大。它的核心是消息分发。 运行时会发消息给对象。一个对象的class保存了方法列表。那么这些消息是如何映射到方法的,这些方法…
iOS 深入理解KVO实现 | 掘金技术征文
KVO的使用 要实现will/didChangeValueForKey:方法 kvo的实例 实际在运行时被调用 - (void)willChangeValueForKey:(NSString *)key; - (void)didChangeValueForKey:(NSStri…
iOS 如何实现Aspect Oriented Programming (下)
(接上篇) 五. Aspects hook过程详解 先看看函数调用栈的情况 - aspect_prepareClassAndHookSelector(self, selector, error); ├── aspect_hookClass(self, error) │ ├──a…
ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(中)
前言 紧接着上篇的源码实现分析,继续分析RACSignal的变换操作的底层实现。 目录 1.过滤操作 2.组合操作 一. 过滤操作 过滤操作也属于一种变换,根据过滤条件,过滤出符合条件的值。变换出来的新的信号是原信号的一个子集。 1. filter: (在父类RACStream…