Swift 项目中的 Objective C pod - 正确的桥接头?

Posted

技术标签:

【中文标题】Swift 项目中的 Objective C pod - 正确的桥接头?【英文标题】:Objective C pods in Swift Project - right bridging headers? 【发布时间】:2017-06-03 03:39:54 【问题描述】:

我正在尝试将用 Objective C 编写的 SocketClusterios (https://github.com/abpopov/SocketCluster-ios-client) pod 添加到 Swift 项目中。我已经在 Objective C 项目中测试了这个 pod,url 似乎工作正常,但是当我尝试将它添加到 Swift 项目时,我遇到了奇怪的错误:

NewSocketTestApp[1641:29629] "event":"#disconnect","data":
"code":4005
#disconnect

我可能认为是桥接头的问题。我将链接附加到我的测试应用程序存储库。 https://github.com/davigr/SocketClusterSwift。 SocketCluster-ios-client 使用 SocketRocket pod,我在桥接头中也提到了这个 pod。不幸的是,当我尝试连接时,它无法连接。我在Objective C项目中做了同样的代码,一切都很好。谁能帮我解决这个问题?项目设置或桥接头可能有问题 我的桥接头:

#ifndef Bridging_Header_h
#define Bridging_Header_h
#import "Pods/SocketCluster-ios-client/Pod/Classes/SCChannel.h"
#import "Pods/SocketCluster-ios-client/Pod/Classes/SCSocket.h"
#import "Pods/SocketCluster-ios-client/Pod/Classes/SCMessage.h"
#import "Pods/SocketRocket/SocketRocket/SocketRocket.h"
#import <Foundation/Foundation.h>
#import <CFNetwork/CFNetwork.h>
#import <Security/Security.h>

【问题讨论】:

确保你的桥接头名称在 Build Settings -> Swift Compile -> “Objective-C Bridging Header”旁边!! 是一样的,我查过了。桥接头似乎工作正常,因为我可以在一个类中导入框架,并创建套接字的实例。连接问题。不知何故,我的套接字不想连接到服务器。我在Objective C测试项目中做了同样的过程,就像一个github.com/davigr/SocketClusterSwift在swift中。我认为帮助我解决问题的唯一方法是下载我的快速测试项目(上面的链接)。否则,问题就太难解释了。 【参考方案1】:

已解决,即将与socket集群链接

【讨论】:

以上是关于Swift 项目中的 Objective C pod - 正确的桥接头?的主要内容,如果未能解决你的问题,请参考以下文章

Swift 项目中的 Objective C pod - 正确的桥接头?

Swift 项目中的 Objective C pod - 正确的桥接头?

将 Objective C 框架导入我的 Swift 项目后,我的项目无法识别桥接文件中的头文件

如何在objective c框架中使用swift扩展

如果类没有以 `@objc` 为前缀,是不是可以在 Objective-C 项目中使用用 Swift 编写的 pod?

如果类没有以 `@objc` 为前缀,是不是可以在 Objective-C 项目中使用用 Swift 编写的 pod?