首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
lyuf
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
46
文章 45
沸点 1
赞
46
返回
|
搜索文章
最新
热门
浅析weak指针的实现
oc中weak指针主要用于打破循环或者防止循环引用的发生,应用场景还是很广泛的。那么被weak修饰的指针与被指向的对象在底层的运作机制究竟怎样的呢?为什么在对象释放销毁时weak指针能自动置为nil,从而避免了野指针的错误? 当对象被一个weak指针引用时,底层的实现原理就是:…
从runtime源码解读oc对象的引用计数原理
现在我们使用oc编程不用进行手动内存管理得益于ARC机制。ARC帮我们免去了大部分对对象的内存管理操作,其实ARC只是帮我们在合适的地方或者时间对对象进行-retain或-release,并不是不用进行内存管理。 通过我之前分析的oc对象内存结构可以知道,其实对象的引用计数是存…
分析oc对象的内存结构及其创建过程
首先分析对象的内存结构,其实我们知道oc的对象指针其实就是结构体指针,也就是说oc的对象转成c++代码后其实就是一个结构体。定义一个简单的类代码如下: 先忽略say方法的存在(方法跟结构体的isa指针相关,稍后再分析),可以看出来 struct Person_IMPL的结构体定…
浅析Block的内部结构 , 及分析其是如何利用 NSInvocation 进行调用
Block通过Clang编译器编译成C++语言后,可以看到它其实是一个结构体。结构及成员变量的构成如下图所示: Block的结构中首地址指向的就是isa指针,因此Blcok其实也是我们OC中的对象。通过编译器的处理成C++底层的代码时,Block就是一个结构体,其代码结构如下 …
iOS开发中的AOP利器 - Aspects 源码分析(二)
在Aspects源码分析的第一篇文章中主要分析了为hook做的准备工作,接下来分析一下,当 selector执行时是如何执行你自己添加的自定义hook事件的。 这个函数首先把传进来的NSInvocation对象的selector 赋值为 IMP指向调用方法的原IMP的alias…
iOS开发中的AOP利器 - Aspects 源码分析(一)
AOP全名为 Aspect Oriented Programming- 面向切面编程。AOP是OOP(Object-Oriented Programing - 面向对象编程)的补充和完善。 OOP引入封装、继承和多态等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我…
个人成就
文章被点赞
75
文章被阅读
17,020
掘力值
464
关注了
34
关注者
39
收藏集
1
关注标签
9
加入于
2018-09-12