在swift中使用objective-c方法似乎跨越了swift语言的关键字

时间:2016-08-29 09:48:54

标签: objective-c swift

我有一个客观的方法:

-(DeviceVar *)var:(NSString*)valid

在objective-c中,我简单地将其用作:

DeviceVar* rtc = [device var:@"rtc"];

但是在swift中我使用这种方法有问题:

let rtc = device.var("etc")

因为var是我猜的关键字,所以我的问题是如何让它工作。

1 个答案:

答案 0 :(得分:11)

如果需要,您可以随时在反引号中附加保留字 将它用作方法名称(例如,参见 Use reserved keyword a enum case):

let rtc = device.`var`("etc")

如果您对Objective-C头文件具有写访问权,那么另一个 选项是为Swift定义不同的方法名称 (比较Swift and Objective-C in the Same Project “将Swift与Cocoa和Objective-C一起使用”参考文献:

-(DeviceVar *)var:(NSString*)valid NS_SWIFT_NAME(deviceVar(_:));

然后可以从Swift中调用

let rtc = device.deviceVar("etc")