【发布时间】:2015-10-22 18:47:53
【问题描述】:
我正在开发一个用 Swift 编写的 Xcode 项目。我正在使用两个 pod,AFNetworking 和 BDBOAuth1Manager。它们都是 Obj-C 库,因此只需一个简单的桥接文件即可导入它们。
现在,当我尝试包含用 Swift 编写的第三个 pod SwiftyJSON 时,问题就出现了。这是 Podfile 的样子:
platform :ios, "8.0"
use_frameworks!
pod "AFNetworking"
pod "BDBOAuth1Manager"
pod "SwiftyJSON"
link_with 'TwitterSearch', 'TwitterSearch Tests'
安装上述 Podfile 后,桥接头停止工作,因为它现在找不到我要导入的文件。
为了澄清,这是桥接头文件:
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "BDBOAuth1RequestOperationManager.h"
当 Pod 只是 AFNetworking 和 BDBOAuth1Manager(它们是用 Obj-C 编写的)时,它可以工作。当包含用 Swift 编写的第三个 pod SwiftyJSON 时,它就不起作用了。
确切的错误消息是:
- Swift 编译器错误:“BDBOAuth1RequestOperationManager.h”文件没有 找到了
- Swift 编译器错误:导入桥接头失败
到桥接头的路径
知道这可能是什么吗?
更新:我已经弄清楚为什么它不起作用了。当我在 SwiftyJSON 中手动添加时,一切正常。整个问题的根源在于这一行:use_frameworks!
我完全不熟悉框架,但实际上你必须执行以下操作:
#import "path/BDBOAuth1RequestOperationManager.h"
instead of
#import "BDBOAuth1RequestOperationManager.h"
【问题讨论】:
-
Path 是导入文件的路径,对应于导入文件,如果有意义的话。抱歉,我是 StackOverflow 的新手。