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
Swift和OC混编时, 关于@
objc
的作用
Objective-C和Swift在底层使用的是两套完全不同的机制,Cocoa中的Objective-C对象是基于运行时的,它从骨子里遵循了KVC(Key-ValueCoding,通过类似字典的方式存储对象信息)以及动态派发(DynamicDispatch,在运行调用时再决定实际调用的具体实现)。而Swift为了追求性能,如果没有特殊需要的话,是不会在运行时再来决定这些的。也就是说,Swift类型
PPFSaber
·
2023-07-13 19:20
iOS开发小问题集合
Q:XCode10引入头文件不提示xcode顶部菜单栏>File>WorkspaceSettings>修改下图两项WorkspaceSettings.pngQ:运行报错duplicatesymbol
OBJC
_IVAR
Tony_HYH
·
2023-06-28 23:18
Swift:与OC混编
KVO/KVC三,Swift调用OC四,OC调用Swift五,字符串六,多线程一,条件编译1,代码标记2,条件编译3,信息打印4,版本检测5,API可用性6,程序入口二,KVO/KVC1,选择器必须是被@
objc
Members
码小菜
·
2023-06-24 09:17
消息流程3.动态方法决议和消息转发
动态方法决议
objc
_msgSend发送消息会先从缓存里面imp缓存中查找,如果没有查找到会进入lookUpImpOrForward查找,先从当前类的methods()查找,没有就去父类缓存,不断循环查找
东旭39
·
2023-06-24 09:39
什么是
ObjC
Types?
消息转发流程在forwardInvocation这一步,你必须要实现一个方法:-(NSMethodSignature*)methodSignatureForSelector:(SEL)aSelector
OBJC
_SWIFT_UNAVAILABLE
我不是掌柜
·
2023-06-24 06:42
Runtime 属性关联方法
staticconstchardelegateKey//这是用来确认唯一身份的标识■设置类关联属性
objc
_setAssociatedObject(object,key,val
wangDavid939i
·
2023-06-24 06:01
iOS 底层动态方法决议 & 消息转发
前言OC调用方法,底层是调用
objc
_msgSend发送消息。在发送消息时会经过一系列的快速查找、慢速查找,如果查找到对应的IMP,直接返回;如果没有找到,就会进入到方法的动态方法决议和消息转发流程。
Mr木子李
·
2023-06-24 00:39
程序瘦身
现有一种方案是根据Linkmap文件取到
objc
的所有类方法和实例方法。再用工具逆向可执行文件里引用到的方法名,求个差集列出无用方法。
sudhengshi
·
2023-06-23 20:23
aspose.words填充表格数据
Documentdocument=newDocument("template.doc");//内容Listlist=getData();DataTabledataTable=newDataTable("items");Class
objC
lass
InsideOfTheWall
·
2023-06-23 15:51
java
【unity】模型控制句柄(类似编辑面板)
工程文件下载地址使用方法实时控制核心方法:TransformControl.Control();设置控制目标核心方法:TransformControl.Target
Objc
t()demopublicTransformControltransformControl
小生云木
·
2023-06-23 12:31
Unity
unity
c#
游戏引擎
iOS开发中经典错误Undefined symbols for architecture arm64: ld: symbol(s) not found for architecture arm64
分析(造成此问题的原因之一):"_
OBJC
_CLASS_$_ATTrackingManager",r
被偏爱的总有恃无恐
·
2023-06-23 10:45
ios
Objc
4-750源码编译
objc
4源码编译我们都知道在编写IOS代码的时候,都会将我们编写的diamante转换成Runtime运行时。比如我上一篇介绍了消息转发机制提到的调用的方法都会执行
objc
_msgSend()。
江南易飞
·
2023-06-23 10:04
Flutter 发布package到公有或私有pub
一、package创建fluttercreate--template=packagehello二、插件创建
objc
表示iOS使用OC语言java表示安卓使用java语言fluttercreate--orgcom.example
出来遛狗了
·
2023-06-23 08:48
iOS编译错误整理
2018.9.121.iOS添加c,c++文件引发的NS
ObjC
Runtime.h错误;原因:错在Prefix.pch中,#import#import解决:添加__
OBJC
__#ifdef__
OBJC
_
Raywf
·
2023-06-22 11:50
[iOS] dyld和
objc
的关联
_
objc
_init源码分析首先,我们直接取
objc
源码中找_
objc
_init的源码,如下:void_
objc
_init(void){staticboolinitialized=false;if(initialized
code_ce
·
2023-06-22 07:56
OC对象的本质
xcrun-sdkiphoneosclang-archarm64-rewrite-
objc
OC源文件-o输出的CPP文件。~
求长生
·
2023-06-22 04:22
Type Encodings
*)methodSignatureForSelector:(SEL)selector{if(self.target==nil)return[NSMethodSignaturesignatureWith
ObjC
Types
CharmecarWang
·
2023-06-22 03:05
类结构探究(二)-- bits结构探究
在上一篇文章中我们已经探究了isa和superclass的指向问题,本文将通过lldb调试,探索
objc
_class中bit的存储信息。探索原理我们先看下
objc
_class的结构。
iOSer_jia
·
2023-06-21 12:59
NSProxy
它来实现一下"伪多继承".直接上个代码来展示下#import@interfaceJanProxy:NSProxy-(void)transform
Objc
:(NSObject*)
objc
;@endJanProxy.m
anna_hui
·
2023-06-21 03:04
CocoaPods详细安装
CocoaPods的好处1、在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-
objc
-arc配置等。
11a3034531f8
·
2023-06-20 15:54
iOS LLVM 中的宏定义
在阅读
Objc
库源码时常常会遇到很多宏定义,比如宏SUPPORT_INDEXED_ISA、SUPPORT_PACKED_ISA,代码如下所示://DefineSUPPORT_INDEXED_ISA=1onplatformsthatstoretheclassintheisa
chaoguo1234
·
2023-06-20 15:58
ios
xcode
macos
ide
Flutter 与 iOS 原生项目混编配置(二)
Native实现@
objc
privatefuncpushToFlutter(){letflutterVC=CJMFlutterViewController.share()flutterVC.setInitialRoute
Coder_Answer
·
2023-06-20 02:03
iOS的dealloc方法做了什么工作?weak指针为什么会自动设为nil?
Dealloc方法底层流程如下://[NSObjectdealloc]-(void)dealloc{_
objc
_rootDealloc(self);}_
objc
_rootDealloc(idobj){obj
Bauyin89
·
2023-06-20 00:30
Linux常用命令——gcc命令
目前,GCC可以用来编译C/C++、FORTRAN、JAVA、
OBJC
、ADA等语言的程序,可根据需要选择安装支持的语言。语法gcc(选项)(参数)选项-o
AI-剁椒鱼头
·
2023-06-19 18:46
Linux命令
linux
运维
服务器
iOS系列之Runtime
作者:洋仔链接:https://juejin.cn/post/69616536056527585641.
objc
在向一个对象发送消息时,发生了什么?
iOS的火影乱斗
·
2023-06-19 15:16
Flutter指定项目语言
kotliniOS使用Swift默认fluttercreate-iswift-akotlinflutter_example2.android使用kotliniOS使用OCfluttercreate-i
objc
-akotlinfl
我叫柱子哥
·
2023-06-19 12:05
iOS - nil,Nil,NULL,[NSNull null]
通过查看
objc
/
objc
.h和
objc
/
objc
-api.h这两个头文件。
厦门_小灰灰
·
2023-06-18 03:59
OC代码转C++时__weak问题
weakreferenceinfileusingmanualreference解决:支持ARC、指定运行时系统版本,比如:xcrun-sdkiphoneosclang-archarm64-rewrite-
objc
-f
objc
-arc-f
objc
-runti
it小小菜鸟
·
2023-06-18 02:41
Swift Runtime - 类和对象
编译阶段classPureSwiftClass{privatevarprivate_var_property=0@
objc
privatevar
objc
_private_var_property=0varinstance_property
hexiaoxiao
·
2023-06-17 23:52
单片机基于 Linux 环境下的Makefile 工程管理和工具链配置
一、开发环境开发板:stm32f407编译环境:18.04.6LTS工具链:gcc-arm-none-eabi,gcc-arm-none-
objc
opy二、工具链下载和安装下载地址:(下载64位linux
YZRDEG
·
2023-06-17 12:43
单片机
linux
arm开发
嵌入式硬件
运维
Method cannot be a member of an @
objc
protocol because the type of the parameter 4 cannot be repr...
Swiftoption错误Methodcannotbeamemberofan@
objc
protocolbecausethetypeoftheparameter2cannotberepresentedinObjective-C
铁汁红豆
·
2023-06-16 00:14
Frida-trace
{onEnter(log,args,state){varself=new
ObjC
.Object(args[0]);//当前对象varmethod=args[1].readUtf8String();//当前方法名
施文松
·
2023-06-15 18:49
RxSwift监听自定义类中的属性
定义属性@
objc
dynamicprivatevarisShow:Bool=false@
objc
dynamicprivatevartabButton:UIButton!
悟饭哪
·
2023-06-15 17:43
iOS 内存管理
这里有处理好的
objc
4-756.2工程,以下都是基于处理好的
objc
4-756.2工程说明的。
shen888
·
2023-06-15 16:20
load、initialize方法的区别是什么?
1.调用方式上的区别1>load是根据函数地址直接调用;2>initialize是通过
objc
_msgSend调用;2.调用时刻1>load是runtime加载类、分类的时候调用(只会调用一次);2>initialize
ZX4580
·
2023-06-15 01:41
iOS-底层原理-消息流程
objc
_msgSend分析之汇编查询cache--->快速查找
本文的主要目的是理解
objc
_msgSend的方法查找流程,首先查找的是cache缓存而且用汇编实现的,因此称之为快速查找,对应的methoList查询,称之为慢速查找。
如意神王
·
2023-06-14 01:00
【iOS】—— iOS中的相关锁
文章目录自旋锁1.OSSpinLock2.os_unfair_lock3.atomic互斥锁pthread_mutex@synchronized
objc
_sync_enter
objc
_sync_exit
zxb10
·
2023-06-13 19:58
ios
xcode
objective-c
iOS16之后新加的内容
findConformanceWithDyld方法内部并没有onDisk方法簇的调用dyld关于协议一致性的内存缓存也是在Swift5.4加入的在Objective-C中,几乎所有的方法调用都会转化为消息发送,而消息发送的必经之路就是
objc
_msgSend
星光uoin
·
2023-06-13 16:50
swift
objective-c
iOS16
Runtime 面试题
一、
objc
对象的isa的指针指向什么?有什么作用?
mpyl
·
2023-06-13 07:10
iOS -- isa指针
而Class类型,也就是struct
objc
_class*,这是苹果在下面的注释中写到的。这说明类本身也是一个对象。在类对象中的isa指向的类叫做“元类”,类方法就定义在元类中。
漓江塔塔主
·
2023-06-13 01:29
ios
objective-c
开发语言
dyld和
objc
的关联
接下来让我们一起探索dyld和
objc
的关联首先查看
objc
_init源码void_
objc
_init(void){staticboolinitialized=false;if(initialized)
lkm_0bdc
·
2023-06-12 03:45
iOS开发:retain、release、dealloc
在
objc
源码中定义了全部的支持TaggedPointe
__Null
·
2023-06-12 01:14
iOS开发:方法查找与消息转发
Objective-C的方法的调用都是一个消息转发的过程,
objc
_msgSend(receiver,selector,...),第一个参数表示消息的接收者,第二个参数表示消息的名称,即方法。
__Null
·
2023-06-11 20:46
iOS开发:类class的底层实现原理
NSObject底层的实现
objc
_class,其初始化即对应底层一个
objc
_class的一个初始化。那么
objc
_class到底长什么样呢?注意事项:本部分仅摘录了部分核心代码以节省篇幅。
__Null
·
2023-06-11 20:38
iOS开发:alloc、init、new
今天我们就来一探究竟:以下调试基于Apple开源的
objc
4-818.2代码进行。1.alloc的代码执行流程1.1.首先在上述代码开始开始位置打第1个断点,然后运行代码使得代码断在这个断点。
__Null
·
2023-06-11 20:32
OC-问题答案
NSClassFromString(@"__NSCFBoolean")];//方法二NSNumber*booleanNumber=@YES;constchar*typeEncoding=[booleanNumber
objC
Type
彭同学她同桌
·
2023-06-11 19:36
OC
xcode
OC底层原理08-方法、属性、成员变量的归属
一、准备工作
objc
4可编译源码,可直接跳到文章最后,下载调试好的源码在源码中创建类GomuPersonGomuPerson.h@interfaceGomuPerson:NSObject{//:成员变量
Gomu_iOS
·
2023-06-11 17:39
13. iOS相关问题(不定期更新)
https://blog.sunnyxx.com/2014/08/30/
objc
-pre-main/动态链接库静态链接的代码在编译的时候就已经链接到程序中,运行时直接执行二进制文件;而动态链接库需要在程序启动后才会动态去链接这些动态库
LynnXYT
·
2023-06-11 14:30
方法的查找流程
在前面的对象的本质探索中我们可以通过clang-rewrite-
objc
main.o可以编译出main.cpp文件出来。
Easting
·
2023-06-11 13:38
dyld 和
Objc
的关联
是我们程序启动必不可少的一部分进入
objc
_init的源码中我们截取片段来解释environ_init();tls_init
携YOU手同行
·
2023-06-11 07:00
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
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
其他