首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS 面试
订阅
大雄爱折腾
更多收藏集
微信扫码分享
微信
新浪微博
QQ
15篇文章 · 0订阅
iOS源码解析: runloop的底层数据结构
runloop是iOS中的基本概念,其他系统也有类似的Event Loop、事件循环,这种关键的基础通常都是基于消息机制。而实现的关键也在于如何在消息未到达的时候,让系统休眠以避免资源占用;消息到达就唤醒系统来执行相应的任务。 本文对iOS中的runloop进行了深入解析,从源…
谈谈ObjectiveC中__block
几乎每一个iOS开发者都知道,在block中无法修改非静态局部变量的值,也知道解决方案是用__block来修饰一下变量。 但是,有没有深入地思考挖掘过呢?比如: 第一反应是变量是值传递到block中的,故无法修改。为什么对待非静态局部变量不能像对待静态局部变量那样,直接用指针传…
【翻译】WWDC 2019 :优秀的开发习惯
早上好,我是Josh,来自苹果技术布道团队。我们的团队与像你这样来自世界各地的开发者一起工作是难以置信的荣誉。我们的目标是帮助你们开发出真正优秀的APP。在与你们的交流中我们学习到了很多,得以了解您所采用的流程,面临的挑战,目标和愿景。我们学习可以帮助你摆脱困境的技巧和工具,虽…
深入iOS系统底层之函数调用
古器合尺度,法物应矩规。--苏洵 可执行程序是为了实现某个功能而由不同机器指令按特定规则进行组合排列的集合。无论高级还是低级程序语言,无论是面向对象还是面向过程的语言最终的代码都会转化为一条条机器指令的形式被执行。为了管理上的方便和对代码的复用,往往需要将某一段实现特定功能的指…
一道高级iOS面试题(runtime方向)
说到iOS,要么公司规模比较小,<=3人,不需要面试。 其他的,大概率要让你刀枪棍棒十八般武艺都拿出来耍耍。 而其中,但凡敌军阵营中有iOSer的,又极大概率会考到 Runtime 的知识点。 问输出结果是啥,会不会崩溃。
理解 Block 实现原理
Block 在 iOS 日常开发中会频繁使用到,使用起来也十分方便,而它的实现原理和机制很多小伙伴却一无所知。 Block 是一种带有自动变量值的匿名函数,它能够自动捕获函数内使用到的参数,本文将从细节分析 Block 的实现原理。 在探寻 Block 实现原理中,命令行工具C…
iOS概念攻坚之路(三):内存管理
iOS 的内存管理不止是 「引用计数表」。 iOS 开发者基本都知道 iOS 是通过「引用计数」来管理内存的,但是也许并不知道 iOS 其他的内存管理方式,比如 「Tagged Pointer」(带标记的指针),比如 「NONPOINTER_ISA」(非指针型 isa),这个要…
属性相关的一些关键字详解
介绍一下 iOS 中一些属性相关的关键字
用代码探讨 KVC/KVO 的实现原理
关于KVC/KVO的实现原理,网上的相关介绍文章很多,但大部分说的比较抽象,难以真切的理解,下面我们直接撸代码来实地探讨下。 ①->⑨全部执行成功; 其中①③④⑥ 执行了setter方法,⑦⑧执行了getter方法,②⑤⑨直接访问的实例变量。 1.访问器匹配:先寻找与key,i…
我是如何让微博绿洲的启动速度提升30%的
绿洲iOS研发工程师,绿洲ID:收纳箱KeepFit。 0. 序言 启动是App给用户的第一印象,对用户体验至关重要。试想一个App需要启动5s以上,你还想用它么? 最初的工程肯定是没有这些问题的,但随着业务需求不断丰富,代码越来越多。如果放任不管的话,启动时间会不断上涨,最后…