首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
收納箱
掘友等级
iOS工程师
|
字节跳动
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
24
文章 24
沸点 0
赞
24
返回
|
搜索文章
最新
热门
NSTextStorage、YYText踩坑记录
本文展示了 NSTextStorage、YYText 使用过程中踩的一些坑,导致了 OOM 崩溃异常和展示异常,分析了问题的产生原因,并给出了解决办法。
50行代码以内实现刮刮乐
如何利用系统 API 快速实现刮刮乐功能。通过蒙版实现刮的效果。刮的过程,可以转换为一个画图的过程。
Switch语句完备性问题最佳实践
Switch语句完备性问题,从问题到原理,重现踩坑经历,揭开本质问题,并给出Switch语句写法的最佳实践。
UILabel 你真的会用么?深入源码及坑点分析
UILabel 作为日常开发中出镜率极高的 UI 控件。本文将介绍 Apple 底层是如何设计 UILabel 的文字信息管理的,以及我们在日常使用中会遇到什么坑。 通过这几个属性对应的成员变量进行存储的。 通过打印 UILabel 对象的成员变量列表,我们发现没有对应的 _t…
NSBlockOperation面试与正确用法
0. 引言 在日常开发中,我们可能会用到 NSBlockOperation 来做一些多线程的操作。 因为其使用简单,所以也被广泛使用。 但这个方法也有一个缺点,当 operation 开始执行后,[operation cancel]; 并不能及时取消。 同时,blockOper…
从SIL看Swift函数派发机制
0. 引言 答案是: protocol 。 原因是 extension中声明的函数是静态派发,编译的时候就已经确定了调用地址,类无法重写实现。 我们可以看到SVG初始化后,是直接调用 Drawing.render() 协议的静态函数的。 而对于 Drawing.render()…
Clang Rewrite视角OC类结构分析与部分常见考点
0. 简介 本文利用clang -rewrite-objc探索了类、元类中存储的信息;类、元类、根源类的关系。 在开发中,请使用运行时API,而不是指针偏移、mask等更底层的方式获取信息。 因为苹果可能对这底层逻辑进行优化,如果直接访问会有不稳定的问题,但对外提供的API是稳…
低成本实现线程安全的可变集合
本文使用 运行时和信号量加锁 的方式,低成本地实现了 线程安全的可变集合 ,并使用 CocoaPods 封装了 YCThreadSafeMutableCollection 库供大家把玩和吐槽。 1. atomic 属性声明为atomic时,在该属性在调用getter和sette…
CGContext的变换过程详解
0. 序言 今天透过OpenGL ES的角度,终于想明白了CGContext的变换过程。 多年的老便秘,终于有救了。 这里记录一下。如果有同样问题的小伙伴,可以看一下。 1. Core Graphics iOS支持两套图形API族:Core Graphics/Quartz 和 …
Objective-C按需弃用消息的动态派发
0. 引言 本文简单介绍了Objective-C的消息动态派发,以及某些情况下为什么我们需要弃用这个特性,从而带来一些正向的收益。 1. 消息的动态派发 通过对象的 isa 指针找到类结构体,在该类结构中查找分派表中的方法选择器。 如果找不到选择器, objc_msgSend …
下一页
个人成就
文章被点赞
913
文章被阅读
111,308
掘力值
3,723
关注了
3
关注者
2,097
收藏集
2
关注标签
8
加入于
2020-04-28