首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
OC底层
理查德森
创建于2021-10-09
订阅专栏
对于OC底层的探索
等 5 人订阅
共23篇文章
创建于2021-10-09
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Xcode使用C++刷算法题
一、工程创建 打开Xcode新建project,选择macOS->Command Line Tool然后点击next 语言选择C++点击next,然后选择地方创建工程即可 在main文件导入一批常用头
RunLoop
本文内容大部分是从这篇文章来的,有兴趣可以去看原文 参考文章# 深入理解RunLoop RunLoop是iOS和OSX中的一个基本概念,是一种时间循环机制(Event Loop),在iOS中许多功能的
响应者链
先通过几个小问题来切入我们今天介绍的内容 1、如何扩大UIButton的响应范围? 创建一个自定义类JButton继承自UIButton并重写方法 这里需要了解bounds属性,对bounds不了解可
leetCode-1两数之和问题
函数执行时间计算工具 计算代码块执行时间使用CFAbsoluteTimeGetCurrent单位是秒 本文使用swift语言实现算法 题目 给定一个整数数组 nums 和一个整数目标值 target,
iOS底层-weak探索
在开发中我们经常会用到weak关键字,用的比较多的是声明弱引用属性和__weak声明弱引用指针 在对象释放时如果有强引用指针指向对象,那么对象就不会被释放,如果两个对象相互持有就会造成内存泄漏。 在对
OC底层之__bridge、__attribute__释义
__bridge 我们在开发中经常能见到__bridge今天我们从应用层面了解一下其意义,先看一个小例子,创建自定义类Son并实现方法method 以下代码可以正常运行吗? 他是可以正常运行的,我们逐
OC底层之self、super
前言 本文涉及到的源码环境为objc4-818.2 我们在初始化方法中无数次用到了self和super,我们今天就对他们做一下研究。 创建类Father继承自NSObject 创建类Son继承自Fat
OC底层之类的加载上篇
前文# OC底层之dyld重点分析了应用程序的加载流程,我们本文重点分析类的加载流程。 应用程序的加载流程主要是使用dyld将磁盘上的Mach-O文件和虚拟内存表产生产生了联系,也就是确定了应用程序的
OC底层之dyld
在我们开发app过程中一般认为main函数是程序执行的入口,但是在main函数之前系统已经做了很多的工作,今天我们就来研究一下。 现在已知load函数的处理是在main函数之前,我们在自定义类中实现l
OC方法调用之objc_msgSend消息转发
我们在前面文章中分别研究了方法执行过程中的快速查找流程、慢速查找流程、动态解析但是仍然有可能存在没有处理的消息,那么今天我们就来探索一下苹果给的最后一个机会消息转发流程,我自己没有处理消息,看看别人是
OC方法调用之objc_msgSend动态解析
在前文# OC方法调用之objc_msgSend慢速查找分析中我们只关注了慢速查找的流程,至于慢速查找也没找到的情况还没有分析 先介绍几个枚举值 我们来看一下behavior的值是什么,他是作为参数被
OC方法调用之objc_msgSend慢速查找
在前文# OC方法调用之objc_msgSend快速查找中我们分析了objc_msgSend的快速查找流程,即从缓存cache中查找到imp并执行之,本文我们来分析没有缓存过的方法的查找流程,称之为慢
OC方法调用之objc_msgSend快速查找
我们看到方法调用的底层的是objc_msgSend objc_msgSend OC底层的绝大部分方法调用是通过objc_msgSend消息发送机制实现的,少量方法是通过函数地址直接调用。 正是由于ob
OC底层之Cache_t探索
通过前文的探索我们知道类的结构包括四个成员变量 isa、superclass、bits我们都探索过了(虽然很浅) isa包含指向类/元类的指针 superclass是指向父类的指针 bits包含方法列
OC底层之类结构探索
引言 自定义一个类JPerson继承自NSObject 我们在main方法中写以下代码并且查看其底层实现 终端进入main.m文件目录通过clang查看其底层实现 打开生成的main.cpp文件 可以
OC底层之isa探索
上一篇# OC底层之alloc流程探索文章我们探索了一下alloc的流程,其中涉及到了很多isa相关的内容我们将在这里进行探索 在上文中创建isa的方法是 isa_t ISA_BITFIELD isa
OC底层之alloc流程探索
通过[[XXXX alloc] init]创建实例对象我们再熟悉不过了,今天我们来探索一下alloc的底层原理,我们先写下面一行代码,打上断点并执行。 按住control点击step into可以看到
iOS自动释放池AutoreleasePool
引言 我们项目的main函数中有一个自动释放池@autoreleasepool,我们的代码都是运行在这个自动释放池之中 我们通过查看其底层代码实现逻辑查看其实现细节 打开main.cpp文件查看 从这
Block探索
Block可以看作匿名函数,我们可以和函数一样声明和使用Block 可以将Block作为参数进行传递,相较于传递函数指针,Block要更直观 相比于函数Block更容易捕获上下文,同样也可能带来更多问
iOS多线程之NSOperation、NSOperationQueue
通过一道小问题引出今天的内容 我们有A、B、C、D四个异步任务,AB执行结束才能执行C,A执行完成才能执行D 使用GCD解决 分两步实现 AB执行结束才能执行C,这个比较好实现,使用dispatch_
下一页