首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
ios底层
订阅
你看不到我
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
苹果iOS系统源码思考:对象的引用计数存储在哪里?--从runtime源码得到的启示
iOS开发者都知道OC里面的内存管理是通过对象的引用计数来管理的,或手动MRC,或自动ARC,有些操作可以让引用计数加1,有些可以减1,一旦一个对象的引用计数为0,就回收内存了。 可是,你仅仅知道这里就行了吗?指望你能造火箭造飞机的面试官可不这么想了,比如问你一句,一个对象的 …
iOS Memory 内存详解 (长文)
iOS 是基于 BSD 发展而来,所以先理解一般的桌面操作系统的内存机制是非常有必要的。在此基础之上,本文会进一步在 iOS 系统层面进行分析,包括 iOS 整体的内存机制,以及 iOS 系统运行时的内存占用的情况。最后会将粒度缩小到 iOS 中的单个 app,讲到单个 app…
「技术面试」问答中有什么十分实用的面试技巧?
本文是面试系列的第二篇,第一篇面试官到底想看什么样的简历?. 相关的简历模板可以去公众号『程序员面试官』后台回复『模板』二字领取。 基础面试: 主要考察对岗位和简历中涉及到基础知识部分的提问,包括一部分算法和场景设计的面试题,这一面可能会涉及现场coding. 项目面试: 主要…
iOS中的Promise
在iOS中我们一般使用delegate(代理)或者block(闭包)来进行异步操作,当要执行多个异步操作,必须将第二个嵌套在第一个的完成内,并且还要正常处理错误。这使得代码结构异常的混乱,不方便查看。 相信码过JS的同学都清楚,在es6中新增promise的语法,从此异步操作更…
iOS 避免常见崩溃(二)
讨论FBKVOController简单使用的过程中,笔者将以观察Person类的name属性为例。 FBKVOController为了使用过程中,避免写错待观察属性,设置了2个宏。 这里的宏使用了逗号表达式。简单说逗号表达式的结果就是最右边的表达式的结果。如(3+5,6+8)的…
iOS 性能优化总结
在 VSync 信号到来后,系统图形服务会通过 CADisplayLink 等机制通知 App,App 主线程开始在 CPU 中计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等。随后 CPU 会将计算好的内容提交到 GPU 去,由 GPU 进行变换、合成、渲染。随后…
runtime之ivar内存布局篇
随着runtime越来越常用,iOSer对runtime的理解要求也越来越高,大家都热衷于runtime源码理解,这篇我带领大家理解下关于Ivar的内容。 在分析Ivar之前,我们要了解下内存对齐的概念。 每个特定平台上的编译器都有自己的默认“对齐系数”,而64位中iOS里这个…
深入iOS系统底层之程序中的汇编代码
合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。--(老子·道德经 ) 对于一个闭源系统来说如果想研究某些逻辑的内部实现就需要对汇编语言进行掌握和了解、对于某些需要高性能实现的逻辑来说用汇编语言实现可能是最好的选择、对于某些逻辑来说可能只能用汇编来实现。以最后一个能…
iOS 开发:『RunLoop』详尽总结
1. RunLoop 简介 可以理解为字面意思:Run 表示运行,Loop 表示循环。结合在一起就是运行的循环的意思。哈哈,我更愿意翻译为『跑圈』。直观理解就像是不停的跑圈。 RunLoop 实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件…
iOS拾遗——为什么必须在主线程操作UI
究竟为什么一定要在主线程操作UI呢?如果在后台线程对UI进行操作会发生什么?在后台线程对UI进行操作不是可以更好的避免卡顿吗?这篇文章就是基于这样一些疑问而产生的。