Bridging-Header.h 文件和错误“使用未声明的类型...”

Posted

技术标签:

【中文标题】Bridging-Header.h 文件和错误“使用未声明的类型...”【英文标题】:Bridging-Header.h file and error "use undeclared types..." 【发布时间】:2016-02-12 12:06:12 【问题描述】:

我在我的应用程序中安装 Podfile,并从我的文件 .xcworkspace 运行它。我的项目是一个 Swift 项目,但安装的 pod 位于 ObjectC 中。 我创建了 myApp-Bridging-Header.h 并在其中添加:

#import "SignalR.h"
#import "RockSocket.h" 
...

然后打开 target>BuildSetting 并在 SwiftCompiler-CodeGeneration>Object-C BridgingHeader 中添加 bridgingFile 的路径。 我构建了项目,它工作正常,但是在我创建时在我的 ViewConytoller 文件中:

var connection:SignalR = SignalR()

我有错误“使用未声明的类型'SignalR'。

我读了一些问题,但我没有解决我的问题。请问你能帮帮我吗??

编辑 我不能使用 SwiftR,因为它是用 javascript 代码和 Jquery 库编写的,我不能使用它这是我的桥接文件的屏幕截图。

这是我的 pod 文件:

platform :ios, '9.0'
pod 'AFNetworking', '2.6.3'
pod 'SocketRocket', '0.3.1-beta2'
pod 'SignalR-ObjC', '2.0.0.beta1'

希望你能帮助我。感谢您的回答。

【问题讨论】:

我假设你在桥接头文件中写了#import,而不是import 所以应该是SignalrSignalR? 对不起,我写的时候弄错了。我编辑帖子 您是否尝试在您的 podfile 中指定 use_frameworks! 你好。如果您解决了您的问题,您可以选择(“接受”)一个对您有帮助的答案,或者自己添加一个答案 - 但请不要修改问题。谢谢! 【参考方案1】:

为 SignalR-ObjC 提供了一个名为 SwiftR 的快速包装器,因此您必须在 Pod 文件中执行以下操作

use_frameworks!
pod 'SwiftR'

在此处查看链接https://github.com/adamhartford/SwiftR

【讨论】:

【参考方案2】:

在桥接头文件中,您可以编写如下内容:-

#import "fileName.h"
or
#import "<filename/fileName.h>"

【讨论】:

抱歉,我犯了一个错误,我使用了:#import "SignalR.h" 并尝试:#import 但它不起作用 转到快速编译器代码生成并检查您的桥接头文件...并在您的 Xcode 中拍摄您的桥接头文件并上传到此处...所以我会得到您的实际问题

以上是关于Bridging-Header.h 文件和错误“使用未声明的类型...”的主要内容,如果未能解决你的问题,请参考以下文章

XCode 7.3 破坏了 Bridging-Header.h?

将 CocoaPods 更新到 0.36.x 及以上版本后如何引用 Bridging-Header.h 中的头文件?

将 CocoaPods 更新到 0.36.x 及以上版本后如何引用 Bridging-Header.h 中的头文件?

swift:Xcode无法为Facebook框架生成Swift表示

OC与swift相互调用

OC与swift相互调用