首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS 底层解析
订阅
coder_C
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
iOS之武功秘籍
春节期间自己又温习了一下objc4-818.2的源码,在此记录一下,方便以后自己复习.
iOS KVC和KVO详解
同时苹果对一些容器类比如NSArray或者NSSet等,KVC有着特殊的实现。 KVC要设值,那么就要对象中对应的key,KVC在内部是按什么样的顺序来寻找key的。当调用setValue:属性值 forKey:@”name“的代码时,底层的执行机制如下: 程序优先调用set:…
.a的一面
一 1.NSString用什么修饰符, 用strong会有什么影响? 一般用copy, strong相当于浅拷贝, 如果是不可变的字符串没有什么影响. 如果是可变的, 会因为对同一片内存地址操作, 导
出一套 iOS 高级面试题
一千个读者眼中有一千个哈姆雷特,一千名 iOS 程序员心目中就有一千套 iOS 高级面试题。本文就是笔者认为可以用来面试高级 iOS 程序员的面试题。 这套题的题目跟公司和业务都没有关系,而且也并不代表笔者本人可以把这些题回答得非常好,笔者只是将一部分觉得比较好的题从收集的面试…
深入研究 Runloop 与线程保活
在讨论 runloop 相关的文章,以及分析 AFNetworking(2.x) 源码的文章中,我们经常会看到关于利用 runloop 进行线程保活的分析,但如果不求甚解的话,极有可能因此学会了一个错误的用法,本文就来分析一下其中常见的误区。 我提供了一个 Demo,可以在我的…
Objective-C基础之六(Runtime之深入理解objc_msgSend)
在OC中,所有的方法调用底层都会转换成objc_msgSend方法进行调用,那么objc_msgSend底层是如何实现的呢?现在我们就通过objc源码来了解objc_msgSend的调用流程。 在objc源码中查找objc_msgSend方法。发现方法的实现在objc-msg-…
Objective-C基础之五(Runtime之Class结构解析)
在之前的学习中,我们了解到isa指针在runtime机制中起到了非常大的作用,通过实例对象的isa指针,我们可以找到类对象,通过类对象的isa指针我们可以找到元类对象,在通过查看objc4的源码,我们可以看到isa指针是一个union isa_t类型的共用体。 其实在arm64…
Objective-C基础之四(深入理解Block)
Block其实就是一个代码块,通常被称为“闭包”,它封装了函数调用以及函数调用环境,以便在合适的时机进行调用,在OC中,Block其实就是一个OC对象,它可以当做参数传递。 由此可以看出block底层其实就是一个OC对象,因为它内部拥有isa指针。同时block将内部所要执行的…
Objective-C基础之三(深入理解Category)
category是Objective-C 2.0之后的语言特性,我们通常称之为类别。他最主要的作用就是为已有的类增加方法,属性,协议等等,但是不能增加实例变量,当然,如果是增加属性的话,只会增加属性的声明,并不会生成属性的setter和getter方法。 因为Category的…
Objective-C基础之二(深入理解KVO、KVC)
KVO的全称是key-value Observng,也叫做“键值监听”,通常用来监听某个对象的某个属性值的变化。下面使用一个简单的例子来回顾一下KVO的用法。 这时候会发现添加了Observer后的person对象的isa指针不是指向XLPerson,而是指向一个新的类对象NS…