在Swift中使用Objective-C方法似乎跨越了Swift语言的关键字 [英] Use objective-c method in swift seems crossing keyword of swift language

查看:97
本文介绍了在Swift中使用Objective-C方法似乎跨越了Swift语言的关键字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Objective-C的方法:

I have an objective-c method:

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

在Objective-C中,我简单地将其用作:

In objective-c I simple use it as:

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

但是我很快就使用这种方法遇到了问题:

But in swift I have a problem using this method:

let rtc = device.var("etc")

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

as var is a keyword I guess, so my question is how to make it work.

推荐答案

如果需要,您可以始终在反引号中添加保留字 将其用作方法名称(例如,请参见 使用保留关键字作为枚举大小写):

You can always enclose a reserved word in backticks if you need to use it as a method name (see for example Use reserved keyword a enum case):

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

如果您具有对Objective-C头文件的写访问权,则另一个 选项是为Swift定义一个不同的方法名称 (比较同一项目中的Swift和Objective-C 将Swift与Cocoa和Objective-C一起使用":

If you have write access to the Objective-C header files then another option is to define a different method name for Swift (compare Swift and Objective-C in the Same Project in the "Using Swift with Cocoa and Objective-C " reference):

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

然后可以从Swift中调用

which can then be called from Swift as

let rtc = device.deviceVar("etc")

这篇关于在Swift中使用Objective-C方法似乎跨越了Swift语言的关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆