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



我有一个objective-c方法:

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

在objective-c中,我简单地使用它:

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

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

let rtc = device.var("etc")

作为var是一个关键字我猜,所以我的问题是如何使其工作

如果需要,可以将保留字用反引号括起来将其用作方法名(参见示例使用保留关键字(enum大小写):

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

如果你有对Objective-C头文件的写权限,那么另一个选项是为Swift定义一个不同的方法名(在同一项目中比较Swift和Objective-C)"使用Swift与Cocoa和Objective-C "参考资料):

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

可以从Swift调用为

let rtc = device.deviceVar("etc")

最新更新