首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
NeroXie
掘友等级
iOS开发
May the force be with you
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
2
文章 1
沸点 1
赞
2
返回
|
搜索文章
最新
热门
重拾RunLoop原理
虽然自己很早前就看过RunLoop的源码,当时看得时候,有点地方还是比较生涩的。所有抽了个时间,重新整理了一下之前RunLoop的笔记。CoreFoundation源代码关于RunLoop的源码主要集中在CFRunLoop.c文件中。 苹果并不允许我们直接创建RunLoop,R…
React Native项目--NNHybrid
从事iOS也有几年,一直就是做原生,没有使用RN这些跨平台的开发方案。也许是最近闲的慌吧,想学一下跨平台方案,在React Native和Flutter之间想了好久,最后贪图RN上手的时间成本可能更少吧,最终觉得还是学RN。 NNHybrid是基于React Native+Re…
OC消息机制和super关键字
在Objective-C里面调用一个方法[object method],运行时会将它翻译成objc_msgSend(id self, SEL op, ...)的形式。 objc_msgSend的实现在objc-msg-arm.s、objc-msg-arm64.s等文件中,是通过…
OC内存管理--引用计数器
否则Runtime会使用一张散列表来管理引用计数。 Tagged Pointer指针的值不再是地址了,而是真正的值。所以,实际上它不再是一个对象了,它只是一个披着对象皮的普通变量而已。所以,它的内存并不存储在堆中,也不需要malloc和free; 在内存读取上有着3倍的效率,创…
Blocks原理
使用xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m转化成C++代码。其中有关键代码如下: __main_block_impl_0有两个成员变量,分别是__block_impl impl和__main_bloc…
OC内存管理--对象的生成与销毁
在iOS开发中了,我们每天都会使用+ alloc和- init这两个方进行对象的初始化。我们也这知道整个对象的初始化过程其实就是开辟一块内存空间,并且初始化isa_t结构体的过程。 整个过程其实就是NSObject对callAlloc方法的实现。 在__OBJC2__下当前类有…
AutoreleasePool的实现
在MRC中,调用[obj autorelease]来延迟内存的释放;在ARC下,对象调用autorelease方法,就会被自动添加到最近的自动释放池,只有当自动释放池被销毁的时候,才会执行release方法,进行释放。真实结果到底是什么,等看完源码后我们就会知道了。 @auto…
深入理解GCD之dispatch_semaphore
再研究完dispatch_queue之后,本来是打算进入到dispath_group的源码,但是dispath_group基本是围绕着dispatch_semaphore即信号量实现的,所以我们先进入到dispatch_semaphore的源码学习。在GCD中使用dispatc…
深入理解GCD之dispatch_group
之前已经介绍了dispatch_semaphore的底层实现,dispatch_group的实现是基于前者的。在看源码之前,我们先看一下我们是如何应用的。假设有这么场景:有一个A耗时操作,B和C两个网络请求和一个耗时操作C当ABC都执行完成后,刷新页面。我们可以用dispatc…
深入理解GCD之dispatch_queue
GCD队列是我们在使用GCD中经常接触的技术点,分析dispatch_queue部分的源码能更好得理解多线程时的处理。但是libdispatch的源码相对来说比较复杂,综合考虑下,使用了libdispatch-187.9进行分析。 1. 队列和线程的关系 线程和队列并不是一对一…
下一页
个人成就
文章被点赞
159
文章被阅读
51,722
掘力值
1,297
关注了
15
关注者
106
收藏集
0
关注标签
11
加入于
2017-07-05