59、C、Objective - C 与 Swift 的交互及特性解析

C、Objective - C 与 Swift 的交互及特性解析

1. 方法重载(Overloading)

在 Swift 中,方法重载是被允许的,然而在 Objective - C 里却不支持。例如,两个名为 myMethod: 的视图控制器实例方法,一个接收 CGFloat 类型参数,另一个接收 NSString 类型参数,且都不返回结果,这样的方法在 Objective - C 中是非法的。所以,尽管这两个 Swift 方法在 Swift 里是合法的,但如果它们都要对 Objective - C 可见,那就不合法了。在 Swift 中,方法之间相互重载是没问题的,只要不向 Objective - C 暴露多个这样的方法就行。

2. 可变参数(Variadics)

Objective - C 有自己版本的可变参数。以 NSArray 的实例方法 arrayWithObjects: 为例,其声明如下:

+ (id)arrayWithObjects:(id)firstObj, ... ;

与 Swift 不同,Objective - C 中的这类方法必须明确知道提供了多少个参数。很多这样的方法,像 arrayWithObjects: ,使用 nil 作为终止符。也就是说,调用者在最后一个参数后提供 nil ,被调用者遇到

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值