首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
卖馍工程师
掘友等级
iOS研发
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
14
文章 14
沸点 0
赞
14
返回
|
搜索文章
赞
文章( 14 )
沸点( 0 )
iOS多线程编程(六) NSOperation
NSOperation 是iOS2.0推出的,最早是通过NSThread实现,在iOS4.0推出GCD之后,苹果又重写了NSOperation 。 自此,NSOperation 是一套基于GCD封装的、面向对象的多线程解决方案。 既然是对GCD的更高一层的封装,那么这些概念也同…
iOS多线程编程(七) 同步机制与锁
多线程可以提高应用程序的响应能力。 多线程可以提高多核系统上应用程序的实时性能。 多线程编程使得在单个应用程序内并发执行多个代码路径成为可能,随着多核计算机的普及,执行不同任务的线程可以在不同的处理器内核上同时执行,这使得应用程序可以在给定的时间内增加它所完成的工作量。我们可以…
iOS多线程编程(四) GCD
本文主要介绍GCD相关概念以及使用,对于GCD的核心概念、函数和队列的搭配使用、函数和队列的复杂组合示例以及GCD中的线程同步机制做了详细的分析。未做底层源码分析,若想了解GCD底层原理分析,可移步 iOS多线程编程(五) GCD的底层原理。 1. GCD简介 GCD 全称 G…
从源码看objc对象是如何产生的
接下来,结合源码,我们共同探究一下alloc的神秘面纱。 [Person alloc]执行后,最先进入的是objc_alloc函数,在此函数中传入当前类(Person),并且调用callAlloc函数。 inline 是一种降低函数调用成本的方法,其本质是在调用声明为 inli…
关于内存对齐,看我
理论上,64位系统下,int占 4个byte,char占 1个byte,那么将它们放到一个结构体中应该占 4+1 = 5byte;但是实际上,通过运行程序得到的结果是 8byte,这就是内存对齐所导致的。 注:本文讨论的内容均是在64位系统下。 计算机中内存空间是按照byte划…
看透 isa
在写这篇博客之前,我在想要从哪里切入,才能让iOS开发者能更通俗的理解 isa。思来想去,我觉得还是从我们最熟悉的“对象”入手吧。 那为什么继承自NSOject的类就可以调用NSObject的方法呢?是不是这中间两者通过某些线索进行了关联呢?带着这个疑问我们往下看。 对象的本质…
iOS 类的结构分析
在谈及面向对象编程的时候,总是离不开 对象 与 类 。对象 是对客观事物的抽象,类 是对 对象 的抽象。它们的关系是,对象 是 类 的实例,类 是 对象 的模板。 Object-C 是基于 类 的对象系统。类 作为对象的模板创建了类,对象的信息存储在 类 中。那么 类 的结构是…
runtime 面试题分析
此篇博客需要用到 isa 与 superclass 的指向流程分析,如果你对此还不是很清晰,建议你先通过这篇博客 看透 isa 了解一下 ;如果你已有所掌握,在这里,我们先做一个简短的回顾。 isa 的指向:对象的 isa 指向 类; 类的 isa 指向 元类;元类的 isa …
iOS objc_msgSend 流程
我们准备 一个类 Person 继承自 NSObject 。实现方法如下 为了区分OC方法 与 C函数在底层的区别,这里我们加入一个自定义函数 void eat () 作为对比。 OC方法调用的本质就是这样一个发送消息的过程。 当一个方法被调用的时候,编译器会根据方法调用的类型…
iOS 类的加载
在 iOS 应用程序加载 一篇,我们得知,app由内核引导启动,之后交由dyld 主导,完成运行环境的初始化,配合ImageLoader将二进制文件按格式加载到内存,动态链接依赖库,并由runtime负责加载成objc定义的结构,所有初始化工作结束之后,dyld调用应用程序的m…
下一页
个人成就
文章被点赞
126
文章被阅读
23,305
掘力值
880
关注了
5
关注者
149
收藏集
0
关注标签
5
加入于
2020-07-16