45 Swift和OC的混编

简介: Swift和OC的混编

桥接问题

桥接

image.png

image.png

image.png

image.png

如何在Swift和Objective-C中相互调用

Swift调用OC

image.png

OC调用Swift

image.png

image.png

NS_SWIFT_NAME

  • 在Objective-C中,重新命名在swift中的名称

NS_SWIFT_UNANAILABLE

  • 在Swift中不可见,不能使用

image.png

Swift和Objective-C混合调用踩坑指南

Subclass

  • 对于自定义的类而言,Objective-C的类,不能继承自Swift的类,即要混编的OC类不能是Swift类的子类。反过来,需要混淆的Swift类可以继承自OC的类

image.png

image.png

image.png

Swift独有特性

  • Swift中有许多OC没有的特性,比如,Swift有元组、为一等公民的函数、还有特有的枚举类型。所以,要使用的混编文件要注意Swift独有属性问题

NS_REFINED_FOR_SWIFT

  • Objective-C的API和Swift的风格相差比较大,Swift调用Objective-C的API时可能由于数据类型等不一致导致无法达到预期(比如,Objective-C里的方法采用了C语音风格的多参数类型;或者Objective-C方法返回NSNotFound,在Swift中期望返回nil)。这时候就要NS_REFINED_FOR_SWIFT了

image.png





目录
相关文章
|
6月前
|
Swift Perl
OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries
OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries
98 0
|
Swift iOS开发
iOS OC混编Swift 后者无法走断点
iOS OC混编Swift 后者无法走断点
81 0
|
Swift iOS开发
Swift - 与OC混编时如何创建桥接头文件
Swift - 与OC混编时如何创建桥接头文件
472 0
Swift - 与OC混编时如何创建桥接头文件
|
Swift iOS开发
oc与swift混编
1.swift中调用oc;2.oc中调用swift
289 0
oc与swift混编
|
Swift
Swift和OC控制器互相跳转
Swift和OC控制器互相跳转
322 0
|
Swift iOS开发
Swift - 如何用Reachability来混编判断网络状况
Swift - 如何用Reachability来混编判断网络状况
301 0
|
Swift iOS开发
Swift与OC的混编
Swift调用OC文件 OC调用Swift文件
378 0
Swift与OC的混编
|
Swift iOS开发 容器
iOS 仿支付宝银行卡界面(支持Swift/OC)
在有支付相关的APP中,都有对应的钱包,虽然现在的支付宝,微信支付很流行,但是都是需要绑定自己的银行卡,那么这个银行卡的卡包页面该怎么实现呢?在网上找了许久也没有找到合适的,那就索性自己造轮子。
381 0
|
Swift
OC 和 swift 创建单例方法
OC 和 swift 创建单例方法
326 0
|
Swift
OC与swift的数据传输
该项目主要介绍了oc与swift之间、swift内部几种常见的传值方式(属性传值、代码块传值、代理传值、通知) 如果oc与swift之间的桥接有疑问请参考:OC与swift桥接互调
223 0
OC与swift的数据传输