首页
AI Coding
AIDP
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
DaSen
掘友等级
iOS 菜鸟开发工程师
计算机菜鸟
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
iOS 小技巧大杂烩
下次重新运行项目,然后就不报错了。 59, 设置TableView不显示没内容的Cell。
iOS 底层系列 - Mach-O 介绍
可以理解为加载命令,在加载Mach-O文件时会使用这里的数据来确定内存的分布以及相关的加载命令。比如我们的main函数的加载地址,程序所需的dyld的文件路径,以及相关依赖库的文件路径。 这里包含了具体的代码、数据等等。 __LINKEDIT 包含了方法和变量的元数据(位置,偏…
iOS 底层系列 - ALSR地址空间布局随机化
Address Space Layout Randomization,地址空间布局随机化。 是一种 通过增加攻击者预测目的地址难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术。 MachO 可执行文件每次起始地址不一样。 函数地址永远是固定的,容易被破解者…
iOS 底层系列 - 启动的过程
移除不需要的 动态库. 移除不需要 Objec 类, 减少selector数量 。 合并功能类似的类和扩展(Category)少用分类。 减少 C++ constructor 构造函数数量。 减少 ObjeC +load ,尽量用 dispatch Once 或 Initial…
iOS 底层系列 - 内存映射 mmap 是什么
在内存映射的过程中,并没有实际的数据拷贝,文件没有被载入内存,只是逻辑上被放入了内存,具体到代码,就是建立并初始化了相关的数据结构(struct address_space),这个过程有系统调用mmap()实现,所以建立内存映射的效率很高。 既然建立内存映射没有进行实际的数据拷…
iOS 底层系列 - isEqual与hash
如果你写的子类还需要添加到集合类型(NSDictionary,NSSet等)中去,hash方法也需要重写。 比较两个对象的指针,若是字符串 对比的是首地址。 比较两个字符串的内容. == 运算符只是简单地判断是否是同一个对象。 isEqual方法可以判断对象是否相同, 例如UI…
iOS 底层系列 - Uiview 与 Calyer 相关视图知识
1. UIView 和 CALayer的区别 view初始化的时候默认会创建一个layer;设置view的frame和bounds等内部其实是修改layer对应属性。 两者最明显的区别是View可以接受并且处理事件,而Layer不可以。 所有从UIView派生出来的UIKit类…
SDWebImage 中的图片解码
一般我们使用的图像是JPEG/PNG,这些图像数据不是位图,而是是经过编码压缩后的数据,需要线将它解码转成位图数据,然后才能把位图渲染到屏幕上。 当你用 UIImage 或 CGImageSource 的那几个方法创建图片时,图片数据并不会立刻解码。图片设置到 UIImageV…
iOS 底层系列 - Atmoic 是否安全
答:不是。 字符串不会完整的拼接 10 次,会出现拼接重复。 noatomic在如下情况 不能保证 get set 安全,对象释放。
iOS 底层系列 - runtime 的应用
1. 动态添加Ivar 动态添加Ivar我们能够通过遍历Ivar得到我们所添加的属性。 不能在已存在的class中添加Ivar,所以说必须通过objc_allocateClassPair动态创建一个class,才能调用class_addIvar创建Ivar,最后通过objc_r…
下一页
个人成就
文章被点赞
22
文章被阅读
25,516
掘力值
513
关注了
0
关注者
23
收藏集
0
关注标签
17
加入于
2020-10-10