我有一个使用网桥头的Swift和Objective-C交叉项目。
在我的主要ViewController.swift文件中,在类声明之外,我有以下代码:
var mainView = ViewController()
在我选择的其他视图中,我可以使用mainView.runFunction()
如何在Objective-C .m实现文件中调用此函数?
谢谢!
答案 0 :(得分:1)
首先,要在Objective-C中使用swift,您需要导入TargetName-Swift.h
。请注意,这是目标名称。
有关更多信息,请查看this。
您可以通过这种方式实现您想要的:
ViewController *mainView = [[UIViewController alloc] init];
[mainView runFunction];
此外,您还应将runFunction
声明为@objc
,以便在Objective-C中使用它,如下所示:
@objc func runFunction {
// what you want to do ...
}
答案 1 :(得分:0)
关注此苹果文章并完成:Load Swift in Objective-C。 或者我已经做过一个使用“ @objc”键的“技巧”,请看一下这个小解释:What is @objc attribute,一种简单的方法是创建一个对您的Objective-c类可见的帮助函数,并像:
@objc func retrieveMainView() -> UIViewController { return MyViewController() }
然后您从Objective-C类中调用它,也许您需要使用@objc注释swift类,看看这两个引用,您将明白并确定。
答案 2 :(得分:0)
在您的目标文件(即.m文件)中,添加以下导入语句:
import "<ProjectName>-Swift.h"
例如,您的项目名称为MyProject,因此import语句应类似于:
import "MyProject-Swift.h"
并调用您的函数,例如:[mainView runFunction];
我希望这会有所帮助。您也可以参考我的答案之一: How can I import Swift code to Objective-C?