首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
面试
订阅
viivx
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
iOS KVC和KVO详解
同时苹果对一些容器类比如NSArray或者NSSet等,KVC有着特殊的实现。 KVC要设值,那么就要对象中对应的key,KVC在内部是按什么样的顺序来寻找key的。当调用setValue:属性值 forKey:@”name“的代码时,底层的执行机制如下: 程序优先调用set:…
一道Block面试题的深入挖掘
0. 序言 最近看到了一道Block的面试题,还蛮有意思的,来给大家分享一下。 本文从一道Block面试题出发,层层深入到达Block原理的讲解,把面试题吃得透透的。 很多人觉得Block的定义很怪异,很难记住。但其实和C语言的函数指针的定义对比一下,你很容易就可以记住。 1.…
iOS底层原理总结 - 探寻KVO本质
对小码哥底层班视频学习的总结与记录。面试题部分,通过对面试题的分析探索问题的本质内容。 首先需要了解KVO基本使用,KVO的全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。 上述代码中可以看出,在添加监听之后,age属性的值在发…
iOS拾遗——为什么必须在主线程操作UI
究竟为什么一定要在主线程操作UI呢?如果在后台线程对UI进行操作会发生什么?在后台线程对UI进行操作不是可以更好的避免卡顿吗?这篇文章就是基于这样一些疑问而产生的。
iOS内存管理详解
从上图可以看到,栈里面存放的是值类型,堆里面存放的是对象类型。对象的引用计数是在堆内存中操作的。下面我们讲讲堆和栈怎么存放和操作数据, 还有MRC和ARC怎么管理引用计数。 这就好像候机的时候,无论谁先到达候机厅,总是头等舱的乘客先登机,然后是商务舱的乘客,最后是经济舱的乘客。…
在ARC环境中autoreleasepool(runloop)的研究
最近有个大佬考察了我关于autoreleasepool的了解, 之前一直认为自己了解, 但是稍微一问深, 自己却哑口无言. 仔细思考了下, 决定要将这个问题结合之前的知识从新梳理一下, 当然, 实践是必不可少的. 带着这三个问题, 一起进行一下下面的思考. 其他的解释其实在网上…
iO内存管理之Autoreleasepool
通过之前章节的学习,我们知道在ARC下,LLVM编译器会自动帮我们生产retain、release和autorelease等代码,减少了在MRC下的工作量。调用autorelease会将该对象添加进自动释放池中,它会在一个恰当的时刻自动给对象调用release,所以autore…
进程间通信方式总结
进程间的通信方式,其实我们一直在用它,但是我们都不会去注意它。如果碰到面试官问你知道多少种进程间的通信方式,估计很多人都会有点懵。今天我们就来总结下进程间的通信方式有哪些。 管道,英文为pipe。这是一个我们在学习Linux命令行的时候就会引入的一个很重要的概念。它的发明人是道…
Super 和 Self
我们都知道:self是类的隐藏参数,指向当前调用方法的这个类的实例。那 super 呢? 很多人会想当然的认为“super 和 self 类似,应该是指向父类的指针吧!”。这是很普遍的一个误区。其实 super 是一个 Magic Keyword,它本质是一个编译器标示符,和 …
iOS开发·runtime原理与实践: 消息转发篇(Message Forwarding) (消息机制,方法未实现+API不兼容奔溃,模拟多继承)
在我们开始使用消息机制之前,我们可以约定我们的术语。例如,很多人不清楚“方法”与“消息”是什么,但这对于理解消息传递系统如何在低级别工作至关重要。 方法:与一个类相关的一段实际代码,并给出一个特定的名字。例:- (int)meaning { return 42; } 消息:发送…