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
iOS底层学习 - 类的底层探索
文章开始,我们继续使用上一篇文章的demo,打开使用clang编译后的main.cppclang编译main.m.jpg通过这张图,我们可以发现以下几点:自定义类的类名是struct
objc
_object
w執念
·
2023-03-13 14:26
查看OC代码编译后的 .cpp文件
查看某个.m文件的编译后的.cpp文件xcrun-sdkiphoneosclang-archarm64-rewrite-
objc
xxx.m如果.m文件中包含__weak的代码就会报错error:cannotcreate
学无止境666
·
2023-03-13 13:26
OC底层原理18-分类的加载
在探讨这2个问题之前,我们先准备工程一、准备工作1、在
objc
可执行源码工程中创建类GomuPerson类,如下GomuPerson.h@interfaceGomuPerson:NSObject{NSString
Gomu_iOS
·
2023-03-13 11:35
swift app切换至后台的检测
@
objc
funcapplicationWillResignActive(){if(self.isViewLoaded&&(self.view.window!
ACRN
·
2023-03-13 11:52
objc
_getClass和object_getClass工作上能被逼哭的问题
今天遇到一个超级奇葩的问题。。。先说一下场景,在发版提审前,产品给了一个需求。要我们预留一个webview的外链跳转,但是还不确定链接的地址。我们就先做了一个跳转我们html5的wkwebview,然后等js把地址传过来的时候,我们再把当前的webview替换掉。如图。。。然后就出了一个问题,因为没有push/pop进出栈,tabbar出现在webview上面了,本来想着直接隐藏就行了,结果返回r
OwenKing
·
2023-03-13 06:27
IOS Runtime之
objc
_msgSend方法查找
源码解析1、查看源码,发现
objc
_msgSend是从汇编中开始的。image.png2、如果指针小于等于LNilOrTagged,直接return返回。
Devil_Chen
·
2023-03-13 03:08
编译原理2-链接framework
cdStaticLibrarylibtool-static-oTestExamplelibTestExample.a之后才使用clang链接成可执行文件clang-targetx86_64-apple-macos12.0\-f
objc
蓝汐o
·
2023-03-13 03:58
Runtime 运行时之四:动态创建类和对象、实例操作函数、获取类定义
动态创建对象动态创建对象的函数如下://创建类实例idclass_createInstance(Classcls,size_textraBytes);//在指定位置创建类实例id
objc
_constructInstance
青菜白玉堂
·
2023-03-12 15:26
OC底层 alloc & init & new 解析
流程图如下:底层流程图1.1
objc
_alloc与alloc对象
旅行者_sz
·
2023-03-12 10:15
笔记--NS_SWIFT_NAME与@
objc
区别与用途
swift中使用Selector经常要在方法前面添加@
objc
,除了默认的@
objc
,其实我们还可以添加自己制定的swift中调用的函数名@
objc
(pushToControllerName:params
蓝色的风
·
2023-03-12 09:54
iOS runtime的简单用法
这个运行时系统即
Objc
Runtime。Obj
可乐小子
·
2023-03-12 07:49
[Swift]Tips汇总-20100118更新
需要时作为索引吧(1)记录一些关键字|函数名|术语rethrows,@noescape,assert,@autoclosure,dump,@
objc
,optional,required,weak,unowned
无衔
·
2023-03-12 06:22
iOS 在自定义UITableViewCell 在cell的中实现点击跳转指定页面
不同界面纯代码跳转@
objc
funcgoNextPage(_sender:Any){//拿到ViewControllerletnextPage=self.storyboard!.
ZONG丶
·
2023-03-12 04:31
iOS面试题 如何防止函数被hook
所以,我们可以利用OC的MethodSwizzling来hook方法,有以下三种方法:1、方法交换
OBJC
_EXPORTvoidmethod_e
卢叁
·
2023-03-12 04:11
OC对象的本质
NSObject*
objc
=[[NSObjectalloc]init];也就是说当我们创建一个新的NSObject对象的时候,在底层C语言或者C++这一层,
objc
这个对象是以一种什么数据类型存
雪上踏痕
·
2023-03-12 04:45
iOS 懒加载类和非懒加载类
一、非懒加载类-实现了类的load方法1、我们知道在
objc
初始化代码void_
objc
_init(void){staticboolinitialized=false;if(initialized)return
Johnny_Z
·
2023-03-12 02:39
iOS 探索cache_t
并且有看到
objc
_class中包含cache属性是用来做方法缓存的,其是一个cache_t结构体,那cache_t内部又是什么样的?是如果做到换方法缓存呢?今天我们就来一探究竟。
Sheisone
·
2023-03-12 02:17
关于锁的一个小技巧写法
比如:funcperformLocked(_action:()->T)->T{self.lock();defer{self.unlock()}returnaction()}funcfoo(){
objc
_sync_enter
明谣_罗潇
·
2023-03-12 01:56
iOS底层原理01 - 对象alloc、init、new源码分析
下一篇:iOS底层原理02-对象malloc流程分析0.环境准备从GitHub下载可编译的
objc
4-818.2源码在编译好的源码中添加GLPerson类方便研究1.初探为搞清研究方向,我们先来打印看看以下三个变量的值
OOOlive
·
2023-03-11 22:15
Runtime
苹果官方文档:Objective-CRuntime下载源代码:https://opensource.apple.com/tarballs/
objc
4/阅读源代码:https://opensource.apple.com
pipiOU
·
2023-03-11 21:37
iOS App启动时间优化--Clang插桩获取启动调用的函数符号
我们都知道二进制重排能减少PageFault是次数,从而减少一部分启动时间;那么关键是如何获取启动都调用了哪些函数了获取启动执行了哪些方法ObjectiveC方法绝大部分OC的方法可以通过hook
objc
_msg_send
jayhe
·
2023-03-11 20:47
iOS 消息转发机制(依据实例展开理论)
先总结,后解释Objective-C当向一个对象发送消息时,寻找消息的顺序1.寻找类自身的方法实现先会调用
objc
_msgSend方法,首先在Class中的缓存和方法列表中查找IMP。
满聪
·
2023-03-11 19:12
iOS笔记-Runtime运行时
[receivermessage];//底层会被编译器转换为这样再运行
objc
_mesgSend(receiver,selector)//如果带有参数[receivermessage:(id)arg..
LSRain
·
2023-03-11 18:44
iOS类的结构分析
1.用到的软硬件MacbookAirmacOSMojave10.15.6Xcode11.3.1Object-C(编程语言)2.新建一个项目
objc
4-781源码https://pan.baidu.com
我要当个程序员
·
2023-03-11 18:05
《Objective-C高级编程 iOS与OS X多线程与内存管理》9
autorelease方法效果一致:@autoreleasePool{id__autoreleasingobj=[[NSObjectalloc]init];}转换后的模拟代码为://创建poolidpool=
objc
_autoreleasePoolPush
我才是臭吉吉
·
2023-03-11 14:37
解决错误clang: error: linker command failed with exit code 1 (use -v to see invocation)
linkercommandfailedwithexitcode1(use-vtoseeinvocation)$(inherited)就是all_loadXcode-BuildSettings中,OtherLinkerFlags设置加上-
ObjC
super_man_风清扬
·
2023-03-11 08:39
iOS
常见问题
和
解决方案
iOS问题
Runtime - 方法发送机制土味讲解
面试驱动技术合集(初中级iOS开发),关注仓库,及时获取更新Interview-seriesimageClass结构详解struct
objc
_class:
objc
_object{Classisa;Classsuperclass
小蠢驴打代码
·
2023-03-11 06:26
07--应用加载02--应用加载流程[_
objc
_init][read_images]
TOC_
objc
_init:初始化流程_
objc
_init源码void_
objc
_init(void){staticboolinitialized=false;if(initialized)return
修_远
·
2023-03-11 05:13
OC类的结构-cache_t
OC中的类是一个继承自
objc
_object的
objc
_class结构体。
东旭39
·
2023-03-11 05:49
sh批量搜集.h文件脚本
/-name"*.h"`forobjin$headersdoecho"copy->"$
objc
p--parents$objinc_headers/donebat脚本批量修改文件名@echooff::指定文件位置
Ed_Lannister
·
2023-03-11 04:07
iOS学习与提高能力、iOS技术博客
博客与链接
ObjC
中国https://
objc
cn.io/
objc
.iohttps://www.
objc
.io/iOS博主集合https://github.com/tangqiaoboy/iOSBlogCN
shaoshi_kin
·
2023-03-11 04:12
OC类对象/实例对象/元类解析
objc
_class和
objc
_ob
lb_
·
2023-03-11 04:02
RAC如何swift 和 oc 混编
就可以混编了pod'Reactive
ObjC
'pod'ReactiveCocoa'pod'Reactive
ObjC
Bridge'之前我一直看网上说要手动假如Reactive
ObjC
Bridge框架后面发现直接导入就行中间遇到的问题本来以前是这样导入的
侠客行1024
·
2023-03-11 04:18
Xcode 打包常见错误问题
建议搜索关键字查找解决方案问题1:iOSerror“_
OBJC
_CLASS_$_ASIdentifierManager”,referencedfrom:
objc
-class-refin解决方案:选中TARGETS
xzhuan
·
2023-03-11 01:33
由浅入深Runtime
任何方法的调用都会转成运行时的
objc
_msgSend(<#id _Nullableself#>,<#SEL _Nonnullop,...
coderLZ
·
2023-03-10 22:51
iOS swift 获取设备连接的WiFi的信息
权限文件需要添加AccessWiFiInformation为true3、开启定位信息4、获取WiFi信息附注:WechatIMG3444.pngWechatIMG3445.png//MARK:设置定位@
objc
funcconfigLocationAction
曹老师8428
·
2023-03-10 21:53
ObjC
基础-属性关键字(atomic、nonatomic、retain、strong、copy、assign、unsafe_unretained、weak)的区别与用法
文章目录
ObjC
基础关键字-属性关键字原子操作类atomicnonatomic内存管理类retainstrongcopy为什么经常用copy来修饰Block属性,而不用strong?
VanTyler
·
2023-03-10 20:48
iOS开发-ObjC
基础
ios
objective-c
通过JSON.parse(JSON.stringify(obj))转换的对象中的日期(Date)
首先我们先来看一张截图image.png代码注释obj变量中有个time字段,是Date格式数据通过{...obj}等到一个
objC
opy对象,对象中同样也有个time字段通过JSON.parse(JSON.stringify
一个写前端的姑娘
·
2023-03-10 17:43
objc
_msgSend()报错Too many arguments to function call, expected 0, have 2
到项目里设置BuildSetting-->AppleClang-Preprocessing-->EnableStrictCheckingof
objc
_msgSendCalls改为NOimage.png
emily_sky
·
2023-03-10 16:10
Runtime之
objc
_msgSend执行流程
1、
objc
_msgSend本质在OC中,方法调用其实就是转换成
objc
_msgSend函数的调用。
ychen3022
·
2023-03-10 14:17
dyld和
objc
的关联
那么dyld是怎么和
objc
进行关联的呢,这篇文章就来了解一下。dyld在加载的时候会加载
objc
,加载
objc
就会进行初始化来到_
objc
_init。
方片_497a
·
2023-03-10 14:38
iOS底层系列09 -- isa的底层探索
OC对象在C/C++底层的本质本文使用的iOS底层系列01--
objc
4-781源码的编译与调试文章中的源码工程,创建继承自NSObject的YYPerson类,创建YYStudent其继承自YYPerson
YanZi_33
·
2023-03-10 12:45
OC底层原理09-isKindOfClass和isMemberOfClass
一、准备工作
objc
4可编译源码,可直接跳到文章最后,下载调试好的源码isa走位图,继承关系图二、查看源码分析流程2.1isKindOfClass源码//:实例方法-(BOOL)isKindOfClass
Gomu_iOS
·
2023-03-10 11:17
iOS底层原理 - Runtime-02
objc
_msgSend执行流程OC中的方法调用,其实都是转换为
objc
_msgSend函数的调用
objc
_msgSend的执行流程可以分为3大阶段消息发送动态方法解析消息转发相信只要做了几年开发的都非常清楚
_曾梦想仗剑走天涯
·
2023-03-10 11:30
将OC代码转换为C\C++代码
终端cd到目标工程目录执行一下命令行:xcrun-sdkiphoneosclang-archarm64-rewrite-
objc
OC源文件-o输出的CPP文件,如果需要链接其他框架,使用-framework
芸芸之尔
·
2023-03-10 10:17
objc
_msgSend 流程分析(消息转发)
前言在前面的
objc
_msgSend流程分析(快速查找)和
objc
_msgSend流程分析(慢速查找)我们分析了
objc
_msgSend的快速查找以及慢速查找流程,如果这两步都没有找到,会怎么样呢?
远方竹叶
·
2023-03-10 05:46
iOS底层初探
通过数据结构的特性可以猜测类的底层应该是结构体这种数据结构,因为类和实例的所包含的数据类型是多样的,所以不会是数组这种要求类型相同的数据类型,下面借助clang查看下oc类在底层的源码,涉及到的clang的命令行为clang-rewrite-
objc
fileName-onewFileName
PageWen
·
2023-03-10 05:02
WebViewJavascriptBridge 调用过程(三)
WKWebView为例1、JS端注册bridge.registerHandler('testJavascriptHandler',function(data,responseCallback){log('
ObjC
calledtestJavascriptHandlerwith
愤怒的八哥
·
2023-03-10 02:11
+load 和 +initialize 理解
objc
_init方法里面的load_image方法回调里面执行prepare_load_methods,遍历所有类调用schedule_class_load,在这个方法里面会先先将父类实现了+load
思绪飘零ing
·
2023-03-09 21:55
objc
_msgSend()汇编核心探索(arm64架构)
寄存器对应须知:函数参数寄存器(x0,x1,x2,x3,x4,x5,x6,x7)p0~p17--->x0~x17id
objc
_msgSend(idself,SEL_cmd,...)汇编实现ENTRY_
objc
_msgSendUNWIND_
objc
_msgSend
薛定谔的汪汪
·
2023-03-09 21:26
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
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
其他