首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS进阶
订阅
鄙人不才
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
iOS Memory Deep Dive
仅以此文解答自己大学以来多年对内存管理的疑惑。 随着计算机的发展,我们的计算机处理的任务也变得越来越繁多,但是对于某台固定的计算机,CPU 和 Memory 都是固定的,如果有些直接使用物理内存地址的话会带来很多问题。首先编译器不能以一种抽象的角度来描绘内存,在执行的过程中如果…
iOS中的Promise
在iOS中我们一般使用delegate(代理)或者block(闭包)来进行异步操作,当要执行多个异步操作,必须将第二个嵌套在第一个的完成内,并且还要正常处理错误。这使得代码结构异常的混乱,不方便查看。 相信码过JS的同学都清楚,在es6中新增promise的语法,从此异步操作更…
质量监控-卡顿检测
不管是应用秒变幻灯片,还是启动过久被杀,基本都是开发者必经的体验。就像没人希望堵车一样,卡顿永远是不受用户欢迎的,所以如何发现卡顿是开发者需要直面的难题。虽然导致卡顿的原因有很多,但卡顿的表现总是大同小异。如果把卡顿当做病症看待,两者分别对应所谓的本与标。要检测卡顿,无论是标或…
iOS开发·runtime原理与实践: 基本知识篇(类,超类,元类,super_class,isa,对象,方法,SEL,IMP)
1. 运行时 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的。比如: 以上你可能看不出它的价值,但是我们需要了解的是 Objective-C 是一门动态语言,它会将一些工作放在代码运行…
位运算和枚举
我看iOS本身定义的枚举里面经常会使用左移(<<)来定义枚举的值,一开始我还不懂为啥要这么定义。这么处理的逻辑跟iOS系统没关系。 规律就是只有一个位上为1,但其他为都为0.这样 e = a | b,二进制形式就是00000011,然后e & b的时候,因为位与(&)的性质,只…
iOS 编译详解 LLVM Clang
从上图我们可以知道,编译型语言需要在运行之前就将代码全部编译好,最终运行的文件是编译后的可执行文件。我们将编译型语言所使用的编译方式称为 AOT (Ahead of time) 预先编译。 而直译式语言则是在运行的过程中,一边编译一边执行,最终运行的文件其实就是一开始写的源代码…
[贝聊科技]一次高效的依赖注入
01. 问题场景 最简单的主项目依赖第三方 pods。 组件依赖第三方 pods,主项目再依赖组件。 这种单向的依赖关系,决定了从组件到项目的通讯是单向的,即主项目可以主动向组件发起通讯,但是组件却没有办法主动和主项目通讯。 你可能说不对,可以发通知啊?是的,是可以发通知,但是…
深入理解KVO
NSKeyValueObservingOptionInitial 把初始化的值提供给处理方法,一旦注册,立马就会调用一次。通常它会带有新值,而不会带有旧值。 NSKeyValueObservingOptionPrior 分2次调用。在值改变之前和值改变之后。 这里的contex…
Tagged Pointer 字符串
Tagged pointer 是一项用于提高性能并减少内存使用的有趣技术。在 OS X 10.10 中,NSString 也开始使用了 tagged pointer 技术,今天我会在 Ken Ferry 的提议下,窥探其工作原理。 对象存储在内存中的时候是内存对齐的,因此他们的…
KVC/KVO 总结
currentBalance/owner/transactions都是BankAccount的属性。owner属性是一个对象,和BankAccount构成一对一的关系,owner对象中的属性改变后并不会影响到owner本身。 为了保持封装,对象通常为其接口上的属性提供访问器方法…