当前位置: 首页 > 面试题库 >

在Swift中使用Objective-C方法似乎跨越了Swift语言的关键字

萧修永
2023-03-14
问题内容

我有一个objective-c方法:

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

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

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

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

let rtc = device.var("etc")

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


问题答案:

如果需要将保留字用作方法名称,则可以始终将其保留在反引号中:

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

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

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

然后可以从Swift调用为

let rtc = device.deviceVar("etc")


 类似资料:
  • 本文向大家介绍Swift使用Objective-C代码中的Swift类,包括了Swift使用Objective-C代码中的Swift类的使用技巧和注意事项,需要的朋友参考一下 示例 在同一模块中 在名为“ MyModule ”的模块内,Xcode生成一个名为的标头,该标头MyModule-Swift.h将公共Swift类公开给Objective-C。导入此标头以使用Swift类: 相关的构建设置:

  • 问题内容: 我正在将我的项目从Objective-c转换为Swift,并且正在使用一个Swift类,我正在尝试在Objective- c类中进行访问。我的问题是,在Objective-C类中不可访问。这是我的速成班: 当我查看文件时,看不到: 当我尝试在我的Objective-c类中使用时,出现编译器错误。 有人知道这个问题吗?如何在Objective-c中访问Swift协议? 问题答案: 您需要

  • 假设我在Swift中定义了一个泛型类,类似于以下内容: (我知道数组有一个稍微好一点的实现,这只是一个例子。) 在Swift中,我现在可以非常容易地使用这个类: 在Xcode 7中,我们现在在Objective-C中拥有泛型,所以我假设我可以在Objective-C中使用这个类: 然而,MyArray从未添加到我的<code>项目Swift中。h文件。即使我将其更改为从NSObject继承,它仍然

  • 问题内容: 在Objective-C中,有一个称为的类方法,该方法在首次加载类时被调用。Swift中的等效项是什么? 问题答案: 在Swift 1.2之前: 编辑: 从Swift 1.2开始,您将无法再覆盖该方法。相反,查看该方法,它的行为与加载不同,它是在类第一次在某处而不是在应用程序初始加载时被调用的

  • 本文向大家介绍在Swift中使用Objective-C编写类、继承Objective-C类,包括了在Swift中使用Objective-C编写类、继承Objective-C类的使用技巧和注意事项,需要的朋友参考一下 互用性(互操作性)使开发者可以定义融合了 Objective-C 语言特性的Swift类。编写 Swift 类时,不仅可以继承 Objective-C 语言编写的父类,采用 Objec

  • 问题内容: 我正在迁移课程,以便对Swift进行一些培训。我通过桥接头成功使用了Objective- C代码,但是我需要导入一个包含指令的常量文件。 我在结合Swift和Cocoa和Objective-C(简单宏)中看到以下内容: 简单宏 通常在C和Objective-C中使用指令定义原始常量的地方,在Swift中使用全局常量代替。例如,常数定义可以在Swift中使用更好地表达。由于简单的类似于常