首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS开发
订阅
aha526
更多收藏集
微信扫码分享
微信
新浪微博
QQ
16篇文章 · 0订阅
一个iOS程序员的自我修养(二)Mach-O里面有什么
Mach-O 文件网上介绍的比较多,但是大多数都只是介绍了文件内的结构,并没有说明为什么会以这样的结构排布。通过阅读《程序员的自我修养》一书,结合 MachOView 工具,重新梳理一下 Mach-O 文件。 除了 iOS 系统的 Mach-O,与之对应的还有 Windows …
Cell 动态行高文字显示不全问题探索
使用的是”预估行高+自动布局“的方法实现动态行高(适用于 iOS7.0 以后系统)。 在项目实现过程中,遇到了文本内容被截断最后一行一小部分,无法完全显示的问题。 新建工程测试,cell上下约束完备,底部高度约束 contentLblBtmCon 为>=9,优先级默认1000。…
OC底层知识点之 -界面优化(上)
通过上图可知,显示过程是通过CPU、GPU、显示器协调工作来将图片显示到屏幕上。具体分以下几步: 刚开始,FrameBuffer只有一个,这种情况下FrameBuffer的读取和刷新有很大的效率问题,为了解决这个问题,引入了双缓存区。即双缓冲机制。在这种情况下,GPU会预先渲染…
一个iOS程序员的自我修养(五)Mach-O文件动态链接
在静态链接的情况下,比如有两个程序 Program1 和Program2,并且他们还共用一个 Lib.o 外部模块,所以在输出的可执行文件 Program1 和 Program2 中有两个副本,当同时运行 Program1 Program2 时,Lib.o 同时在内存中和磁盘中…
一个iOS程序员的自我修养(四)可执行文件的装载
一个进程最关键的特征是它拥有独立的虚拟地址空间,大小由CPU的位数决定。从创建进程到可执行文件装载的过程如下: 创建虚拟地址空间。 在 i386 的 Linux 下,创建虚拟地址空间实际上只是分配一个页目录,相当于提前划分了一个目录,但里面并没有实质性的内容。可执行文件被操作系…
iOS高级进阶系列之-项目开发基础(上)多环境配置,Mach-O与链接器
最近对项目进行优化,就顺便写一些日常开发中会用到的中高级开发技巧。这篇文章聊一下下面三个内容:多环境配置,Mach-O与链接器,Symbol。 1.Project:包含了项目所有的代码,资源文件,所有信息。 2.Target:对指定代码和资源文件的具体构建方式。 3.Schem…
iOS高级进阶系列之-项目开发基础(下)Mach-O与链接器,Symbol
最左边的是地址,我们看到main的起始地址为100003f20,结束地址为100003f5e。 上篇文章讲了Mach-O是可读,可写的。可读我们已经说了,可写是什么意思?Mach-O之所以能被执行是因为有签名,当我们修改了Mach-O文件,需要重新签名才能被苹果系统所接受。这也…
LLVM & Clang 入门
本文主要从下面几个方面简单介绍了一下 LLVM & Clang。 LLVM包含三部分,分别是LLVM suite、Clang和Test Suite。 LLVM suite,LLVM 套件,它包含了 LLVM 所需要的所有工具、库和头文件,一个汇编器、解释器、位码分析器和位码优化…
iOS 查漏补缺 - LLVM & Clang
对于 iOS 开发者来说,Swift 之父 Chris Lattner 的大名应该都会有所耳闻。他和他的团队所开发的 LLVM 已经成为 iOS 乃至 macOS 整个生态中至关重要的底层基础设施。虽然 Lattner 本人已经去 Google 做人工智能了,但是对于 iOS …
LLVM与Clang的一些事儿
LLVM项目的发展起源于2000年伊利诺伊大学厄巴纳-香槟分校维克拉姆·艾夫(Vikram Adve)与克里斯·拉特纳(Chris Lattner)的研究,他们想要为所有静态及动态语言创造出动态的编译技术。LLVM是以BSD授权来发展的开源软件。2005年,苹果电脑雇用了克里斯…