首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
Geeks_L
更多收藏集
微信扫码分享
微信
新浪微博
QQ
16篇文章 · 0订阅
KVC、KVO 相关知识点
关于 KVC 和 KVO ,我之前的总结文章有写过,但是趋于表面,没有探究其内部真正的实现原理和进阶用法,这次总结正好给了我很好的学习机会,在此深入的总结一下 KVC 和 KVO 。 Objective-C 中 KVC 的定义是对 NSObject 的扩展来实现的。所以对于所有…
OC对象alloc流程探索
我们每天都在创建对象,今天就来看看alloc到底做了些什么。 我们在 xcode 工具栏 选择 Debug --> Debug Workflow --> Always Show Disassembly, 显示反汇编。 可以看到alloc其实直接调用了objc_alloc,让我们…
iOS 底层系列 - OC 对象的本质
此篇文章主要介绍的底层原理系列 - OC 对象的本质,对于 OC 对象我们大多数人都了解,但是对于底层和很多原理相对就了解很少. 1. struct objc_class的结构 2. id 和 instanceType 有什么区别? instancetype 和 id 都是万能…
iOS 底层系列 - 内存映射 mmap 是什么
在内存映射的过程中,并没有实际的数据拷贝,文件没有被载入内存,只是逻辑上被放入了内存,具体到代码,就是建立并初始化了相关的数据结构(struct address_space),这个过程有系统调用mmap()实现,所以建立内存映射的效率很高。 既然建立内存映射没有进行实际的数据拷…
iOS 从源码解析Runtime (六):AutoreleasePool实现原理解读
上面代码很清晰的告诉我们,自动释放池构造时调用 AutoreleasePoolPage::push() 函数,析构时调用 AutoreleasePoolPage::pop(ctxt); 函数。 老样子我们还是首先分析其所使用的数据结构(相关的类或者结构体实现),发现这是一个很好…
CoreGraphics系列学习(一)
位图图形上下文(Bitmap Graphics Context):位图图形上下文用于将RGB图像,GMYK图像或者黑白图像绘制到一个位图(bitmap)对象中。 PDF图形上下文(PDF Graphics Context):PDF图形上下文可以帮助开发者创建PDF文件,将内容绘…
iOS Rendering 渲染全解析(长文干货)
1. 计算机渲染原理 对于现代计算机系统,简单来说可以大概视作三层架构:硬件、操作系统与进程。对于移动端来说,进程就是 app,而 CPU 与 GPU 是硬件层面的重要组成部分。CPU 与 GPU 提供了计算能力,通过操作系统被 app 调用。 CPU(Central Proc…
iOS 底层系列 - RunLoop
保持程序的持续运行。 处理App中的各种事件(比如触摸事件、滑动事件、定时器事件、Selector事件)。 节省Cpu资源,提高程序性能,在于有事情做的时候使的当前NSRunLoop的线程工作,没有事情做让当前NSRunLoop的线程休眠。 第一次进入时,初始化全局Dic,并先…
Runloop入门篇
一. RunLoop的概念 二. 输入源 Cocoa和 Core Foundation 为使用端口相关的对象和函数创建的基于端口的源提供了内在支持。Cocoa中你从不需要直接创建输入源。你只需要简单的创建端口对象,并使用NSPort的方法将端口对象加入到run loop。端口对…
多线程的那些事
CPU同一时间只能处理一个线程,只有一个线程在执行。多线程“同时“执行 是CPU快速的在多个线程之间的切换.CPU执行速度较快,导致CPU调度线程的时间足够短,造成同时执行的假象。线程会提高程序执行的效率,但并不是线程数量越多越好,线程过多会导致CPU之间频繁的切换,消耗大量的…