【问题标题】:How do i call swift function from objective c file in same project? [duplicate]如何从同一项目中的目标 c 文件中调用 swift 函数? [复制]
【发布时间】:2018-10-07 10:00:49
【问题描述】:

我使用Swift 4Xcode 9 上创建了一个快速项目。通过创建 .h 桥文件,在我的 swift 项目中创建一些客观的 c .h 和 .m 文件。

我可以从 swift 类中调用目标 c 函数,但现在我想从目标 c .h 和 .m 文件中调用 swift 函数。

但我无法从目标 c 函数调用 swift 函数

那么有哪些步骤呢?

【问题讨论】:

标签: ios objective-c xcode swift3 bridge


【解决方案1】:

为了从 Objective-C 调用 Swift 函数或属性,您必须使用 @objc 关键字对其进行标记。示例:

@objc func myFunc()

【讨论】:

  • 我在我的项目中在哪里定义@objc func?
  • 这是一个关键字。你不需要定义它。就像我在上面的示例中所做的那样,在函数或属性前面加上它。
  • 表示直接将我的swift函数用于目标c类。他们不需要在目标c中导入任何东西吗?以及编译器如何知道我的项目中是否有同名的 swift 函数要调用哪个函数?
  • 不。不需要进口。这就是桥接头的用途。它会为你做到这一点。
  • 你为什么不去试试看。先试后问。
【解决方案2】:

在您的 objc 文件顶部导入 "<ProductName>-Swift.h" 应该可以工作。

例如:

#import myCuteCat-Swift.h

另外,不要忘记 @objc 到您要公开的 Swift 方法/属性。

【讨论】:

  • 请您逐步详细解释我吗?是指哪个productfile?可以举个例子吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2018-04-16
  • 2012-01-05
  • 2015-09-04
相关资源
最近更新 更多