E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
objC
Objective-C对象底层本质
探索:探索思路:我们将OC文件转化为C++文件来探寻OC对象的本质探索操作:利用clang重写OC文件,转换为c++文件clang-rewrite-
objc
main.m-
Y_van
·
2023-03-21 19:12
关于userInteractionEnabled原理及应用
一、原理首先,userInteractionEnabled是属于IOSmessage消息机制中的一个环节,它代表着是否处理传过来的
objc
_msgSend()消息事件.当userInteractionEnabled
水灵芳蕥
·
2023-03-21 13:25
iOS-底层原理:NSObject的alloc 源码分析
NSObject的alloc无法进入源码的问题首先在
objc
4-781可编译源码中的main函数中增加一个NSObject定义的对象,NSObjec
Miraclely
·
2023-03-21 11:20
Clang 方法
第一种方法:绝对路径1、cd到对应文件的文件夹:cd文件夹路径2、进行转换://ViewController.m为需要转换的文件,之后文件夹中会出现cpp文件就是我们要找的文件clang-rewrite-
objc
-isysroot
shuaikun
·
2023-03-21 10:22
LLDB结合底层源码分析Cache数据结构
一试便知,我在
objc
的源码工程里面写了一个demo,自定义了一个类LGPerson继承自NSObject,来到main里面,通
SuKing
·
2023-03-21 04:15
iOS 锁的底层分析(1)--@synchronized
准备工作
Objc
-818.21.锁的归类1.1自旋锁自旋锁是一种用于保护多线程共享资源的锁,与一般互斥锁(mutex)不同之处在于当自旋锁尝试获取锁时以忙等待(busywaiting)的形式不断地循环检查锁是否可用
冼同学
·
2023-03-21 03:51
Mac使用终端生成CPP文件
/a.out可执行文件并输出结果,如图3:图34、继续输入clang-rewrite-
objc
testblock.c-omyblock.cpp可生成myblock.cpp文件,myblock
jakeXu
·
2023-03-21 03:01
Swift学习记录 Project 6
从100DaysofSwift中学习,实践目前正在学习swift,刚刚接触了解了一部分语法后就因为自己在OC上使用reactive
OBJC
还算熟练,想直接学会rxswift和reactiveswift,
那不是随你
·
2023-03-21 00:16
OC底层原理三十七:内存管理(autorelease & runloop)
本节,我们将介绍:autorelease自动释放池runloop准备工作:可编译的
objc
4-781源码:https://www.jianshu.com/p/45dc31d91000runloop源码:
markhetao
·
2023-03-20 18:44
iOS底层原理02 - 对象malloc流程分析
iOS底层原理01-对象alloc、init、new源码分析下一篇:iOS底层原理03-对象的本质与isa在上篇对象alloc流程中提到了一个核心方法calloc,为对象分配内存空间,其实现源码并不在
objc
OOOlive
·
2023-03-20 14:32
UIView+Touch
staticchartouchKey;-(void)actionTap{void(^block)(void)=
objc
_getAssociatedObject(self,&touchKey);if(block
WLAnswer
·
2023-03-20 14:59
2018-04-27
weak的实现原理可以概括一下三步:1、初始化时:runtime会调用
objc
_initWeak函数,初始化一个新的weak指针指向对象的地址。2、添加引用时:
objc
_
改个低调点的名字
·
2023-03-20 13:03
OC中的Block
多线程和内存管理》intmain(){void(^blk)(void)=^{printf("Block\n")};blk();return0;}通过clang(LLVM编译器)“clang-rewrite-
objc
晓先生ol
·
2023-03-20 10:11
类的加载(一)
在上一篇文章(dyld和
objc
的关联)中,我们我已经了解到
objc
的初始化方法_
objc
_init,本文的主题便是由_
objc
_init开始,一步步探究类是如何从Mach中加载到内存的。
iOSer_jia
·
2023-03-20 09:05
OC底层08:消息慢速查找流程
IMPlookUpImpOrForward(idinst,SELsel,Classcls,intbehavior){constIMPforward_imp=(IMP)_
objc
_msgForward_impcache
ZAREMYDREAM
·
2023-03-20 08:05
iOS - swift 拓展添加属性
可以使用OC的关联属性(
objc
_set/getAssociatedObject)实现添加属性extensionUIView{varname:String{get{return(
objc
_getAssociatedObject
Th丶小伟
·
2023-03-20 08:41
swift 实现 macOS NSTableView 右键菜单
定义一个protocol@
objc
protocolContextMenu{@
objc
functableView(_tableView:NSTableView,menuForRowsrows:IndexSet
搞好关系
·
2023-03-20 06:54
Reactive
ObjC
源码分析
基于信号的响应式编程框架。RACSignal信号基类RACSignal(继承自RACStream),调用createSignal:(RACDisposable*(^)(idsubscriber))didSubscribe方法会生成冷信号,并保存didSubscribe(此时并不会执行didSubscribe)。冷信号只有被订阅时,才会变成热信号。通过调用RACSignal的subscribeNex
林君毅小号_001
·
2023-03-20 01:48
系统底层源码分析(17)——类结构中的cache
结构struct
objc
_class:
objc
_object{//ClassISA;Classsuperclass;//父类cache_tcache;//缓存//formerlycachepointerandvtableclass_data_bits_tbits
无悔zero
·
2023-03-20 01:18
autorelease 自动释放池原理
xcrun-sdkiphoneosclang-archarm64-rewrite-
objc
-arc-f
objc
-runtime=ios-8.0.0main.m-omain.cpp中间代码指令代码可以看到
咖啡豆8888
·
2023-03-20 01:16
iOS底层原理01:
objc
4-818 源码编译 & 调试
准备工作环境版本&最新
objc
源码macOS10.15.4Xcode12.3
objc
4-818源码依赖文件下载需要下载以下依赖文件image其中除了其中launchd-106.10需要在MacOSX10.4.4
黑白森林无间道
·
2023-03-19 22:19
iOS重学之class_rw_ext_t结构详解
class_rw_ext_t结构简单介绍在WWDC2020中苹果介绍对类的修改时出现了一个新的结构:class_rw_ext_t,这个结构主要是Runtime在内存上做的一些优化而出现的,在苹果源码
objc
4
重庆妹子在霾都
·
2023-03-19 21:26
十二、dyld 和
Objc
的关联
主要内容:一、_
objc
_init源码分析二、dyld和
Objc
的关联一、_
objc
_init源码分析void_
objc
_init(void){staticboolinitialized=false;if
顺7zi燃
·
2023-03-19 16:50
iOS底层-关联对象探索
关联对象探索其底层原理的实现,主要分为两部分:通过
objc
_setAssociatedObject设值流程通过
objc
_getAssociatedObject取值流程关联对象-设值流程在分类LG中重写属性
含笑州
·
2023-03-19 14:54
ios13.0后创建 pch 需要在 pch 文件调用头文件类名报错问题解决
ios13.0后创建pch需要在pch文件调用头文件前面增加以下代码pch配置__
OBJC
__#importendif`
无所不知的程序员
·
2023-03-19 09:49
Swift 与 JavaScript 的交互(通过 JavaScriptCore)
一、JavaScriptCore中的类JSContext:JSContext是JS的执行环境,通过evaluateScript()方法可以执行JS代码JSValue:JSValue封装了JS与
ObjC
中的对应的类型
PierceDark
·
2023-03-19 07:42
iOS底层 -
objc
_msgSend快速查找流程分析
iOS开发底层探究之路上篇文章我们对cache原理进行了分析,在摸清cache是如何将方法信息存放进去后,我们来研究研究怎么取出所存储的方法信息,那么本文将从
objc
_msgSend入手,探究如何快速获取到方法信息
Lcr111
·
2023-03-19 07:05
swift 对象使用runtime的class_copyPropertyList 获取属性
在swift用runtime获取对象的属性时,对象要加@
objc
Members才能获取到image.png
guoshengboy
·
2023-03-19 06:57
Runtime的总结
1、方法调用的本质就是给这个对象发送消息
objc
_msgSend(idreceiver,SEL_cmd)1.通过这个对象的isa指针找到它的类,2.然后从类的缓存列表里面找这个方法的函数指针,如果找到就调用
Kenter_Huang
·
2023-03-19 02:09
iOS 中消息发送与转发
objc
_msgSend调用一个方法的时候,runtime层会将这个调用翻译成
objc
_msgSend(idself,SELop,...)比如,一条语句[receivermessage];会由编译器转化为以下的纯
AprSnow
·
2023-03-19 02:36
iOS底层原理(三) isa分析
以下源码分析基于
objc
4-781对象的isa初始化在+[NSObjectalloc]流程分析中,我们最终找到了对象创建的方法staticALWAYS_INLINEid_class_createInstanceFromZone
樂亦leeyii
·
2023-03-18 23:57
iOS面试 -- Objective-C
我贴出维基百科的一段
objC
的介绍吧。Objective-C最大的特色是承自Smalltalk的讯息传递模型(messagepassing),此机制与今日C++式之主流风格差异甚大。
唐师兄
·
2023-03-18 22:31
runtime剖析的真是越来越复杂了。。。
isa_t类型详解在新版的runtime源码中,NSObject类型最终会转化为object_class类型,而object_class集成自
objc
_object,在结构体
objc
_object中就含有
QG不吃鱼的猫
·
2023-03-18 20:56
iOS底层问题
1.介绍下runtime的内存模型(isa、对象、类、metaclass、结构体的存储信息等对象struct
objc
_object{Classisa
OBJC
_ISA_AVAILABILITY;};isaunionisa_t
Leevi_w
·
2023-03-18 14:28
《Pro Swift》 第三章:引用类型和值类型(References and Values)
第二章:类型(Types)下次发生崩溃时,请按照以下说明正确解决问题:单击线程中的
objc
_exception_throw,然后在调试区域键入po$arg1以获取错误的可读版本。
影痕残碎
·
2023-03-18 13:21
iOS面试题:一个
objc
对象如何进行内存布局?(考虑有父类的情况)
每一个对象内部都有一个isa指针,指向他的类对象,类对象中存放着本对象的:对象方法列表(对象能够接收的消息列表,保存在它所对应的类对象中)。成员变量的列表。属性列表。类对象内部也有一个isa指针指向元对象(metaclass),元对象内部存放的是类方法列表。类对象内部还有一个superclass的指针,指向他的父类对象。所有父类的成员变量和自己的成员变量都会存放在该对象所对应的存储空间中。Obje
sunnyxg0812
·
2023-03-18 12:59
如何生成一个key
最懒的做法:声明:staticconstcharsearchBlockKey;set:
objc
_setAssociatedObject(self,&searchBlockKey,block,
OBJC
_ASSOCIATION_RETAIN_NONATOMIC
猫狗不如
·
2023-03-18 12:47
__
OBJC
__
#ifdef__
OBJC
__#endif
撒旦的玩偶
·
2023-03-18 11:13
runtime的常见使用
RunTime简介因为
Objc
是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统(runtimesystem)来执行编译后的代码。
hhjdk
·
2023-03-18 07:16
制作cocoapods私有库
提前安装好pod和git1.打开终端,cd到你要存储的位置2.podlibcreate项目名称(项目名称和github上的项目名称保持一致)//需要回到几个问题,我的答案是
ObjC
/Yes/None/No
命运魔方飞
·
2023-03-18 06:41
Swift与OC的相互调用
swift调用OC(底层是通过runtime调用_
objc
_msgSend来实现的)如下图1-1、1-2所示,创建person的oc类时(可选择xcode自动创建桥接文件,也可手动创建桥接文件并指定路径
萤火驻守心间
·
2023-03-18 05:48
iOS底层探索 -- cache_t的结构 和 insert流程分析
在我们探索class的底层时,我们追踪到
objc
_class的源码,其中重要结构为struct
objc
_class:
objc
_object{//ClassISA;Classsuperclass;cache_tcache
iOS小木偶
·
2023-03-18 05:29
iOS底层探索001-alloc&init&new源码分析
-目录前言Objective-C一门面向对象的语音.我们都知道Objective-C创建对象需通过alloc以及init两个消息.alloc的作用是分配内存,init则是初始化对象.MyObject*
objc
1
星星1024
·
2023-03-18 03:32
OC底层基础:多线程GCD
查看oc文件底层结构xcrun-sdkiphoneosclang-archarm64-rewrite-
objc
xxx.m支持ARC、指定运行时系统版本xcrun-sdkiphoneosclang-archarm64
节奏lhl
·
2023-03-18 02:14
alloc流程图
调用alloc流程图调用alloc流程图源码,关键方法源码在
objc
4-781源码NSObject.mm类中+(id)alloc{return_
objc
_rootAlloc(self);}_
objc
_rootAlloc
MrDemon_
·
2023-03-17 20:58
OC底层探寻
类底层分析iOS底层探寻alloc都发生了什么iOS结构体内存对齐分析iOSisa结构分析iOS类的结构分析iOS类的结构分析下iOScache_t结构分析消息转发流程iOS
objc
_msgSend分析
为了自由的白菜
·
2023-03-17 20:05
OC关联对象与Demo
objc
_setAssociatedObject(id_Nonnullobjec
subject_2619
·
2023-03-17 13:59
iOS APP 启动优化
3.
Objc
运行时的初始处理,包括
Objc
相关类的注册、category注册、s
monkey姜啦
·
2023-03-17 12:06
KVO-KVC
一.KVO概念KVO是Key-valueobserving的缩写KVO是
Objc
tive-C对观察者设计模式的又一实现使用了isa混写(isa-swizzling)开实现KVO问:KVO是如何实现的?
coder1003
·
2023-03-17 11:44
objc
_msgSend(一)
被装载到内存中的过程,是动态阶段,此时出错会导致程序崩溃编译时,是源代码翻译成机器能识别的代码的过程,是静态阶段,主要做一些词法分析,语法分析等操作二、Runtime调用的三种途径runtime调用的三种途径三、
objc
_msgSend
小糾丶羯
·
2023-03-17 09:11
上一页
24
25
26
27
28
29
30
31
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他