2015-09-25 53 views
1

这花费了我大量的时间。想知道其他人是否面临同样的问题。即使创建了Swift桥接头文件,也无法在目标C中引用Swift类

我正在开发这个使用GoogleMap iOS SDK的Swift/ObjC混合项目。请注意,我使用Cocoa Pod来管理库引用。 (我不知道是否会花费任何问题)。

所以我检查了"Mix and Match"的标准Apple文档,它给出了Objc和Swift之间交叉引用的所有标准步骤。

我已经检查这个受欢迎的StackOverFlow thread排除潜在的问题。

我创建了一个非常简单的ObjC项目,并成功将Swift类引用到了基于Objective C的ViewController中。

但是!!!我无法在我正在积极合作的项目中做到这一点。这是该项目的截图。如果有人知道任何事情,请帮助我。谢谢。 enter image description here

enter image description here

enter image description here

我不知道如何,但斯威夫特类不是在桥接报引用.....

+0

这意味着你的Swift类中的东西不能转化为Objective-C。从乍一看,我没有看到任何突出的东西。我不相信这个类上的'@ objc'标签是必需的。尝试制作在init中实例化的'let apiKey = ...'和'session'变量。只是猜测可能无法转化为Objective-C的Swift声明。请参阅[本](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_86)不能在你的Swift类中使用。 – keithbhunter

+0

感谢您尝试的答案Keith。事实上,我发现我的X代码版本的问题是你必须有Objective-C桥接头准备就绪。否则,代码将无法工作。 – TypingPanda

回答

0

的一个非常深刻的详细比较后项目设置我发现你必须准备好Objective-C桥接头。

在创建Swift类时,我选择不自动创建位于问题核心的ObjectiveC桥接头。

enter image description here

像显示在画面中,创建具有名称的头文件“[项目模块名] -Bridging-Header.h”,并把该文件的正确路径中的“生成设置”为“ Objective-C桥接头“项目。

构建项目和Voilà~~~你的swift类现在可以在你的目标C代码中看到。

相关问题