Swift和OC混编 3 - 函数调用原理

暴露给OC使用的Swift类必须继承NSObject的原因就是,OC使用的时候是必须要用alloc,objc_msgSend等OC的runtime机制,那如果不继承NSObject,基本的初始化过程都没法完成

OC写的类如果丢给Swift使用,创建一个OC类

Person.h

@interface Person : NSObject
-(void)go;
@end

Person.m

#import "Person.h"
#import "test-Swift.h"
@implementation Person
-(void)go
{
    NSLog(@"go");
}
@end

main.swift

Person().go()

然后在这唯一的一行打上断点,查看汇编代码

会发现明明是OC代码使用的却是Runtime,所以Swift调用OC函数使用的是OC的Objc_msgSend方式

OC调用Swift类

main.swift创建一个swift类


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值