ios - 桥接头有效,但导入无效?

标签 ios xcode swift cocoapods bridging-header

我使用 CocoaPods 安装了一个库,似乎一切正常。我在我的项目中添加了一个桥接 header ,我知道它是有效的,因为我在这个 header 中使用了几个不同的库。但我刚刚安装并桥接了libPhoneNumber-iOS它似乎有效,除了......它没有。我找到了文件,它在标题中正确导入了它们,但我无法快速使用它。它应该是 NBPhoneNumberUtil,但它不存在。

我在标题中像这样导入了它们:

#import "libPhoneNumber_iOS/NBPhoneNumberUtil.h"
#import "libPhoneNumber_iOS/NBPhoneNumber.h"

如果我键入任何不同的内容,它会给我一个错误,说它不能指定的文件,所以应该正确导入。此外,如果我在此头文件中键入 NBPhoneNumberUtil,我可以看到该对象,因此它可以正常工作。但是在我的 swift-project 中,模块不存在。同样,我知道我的桥接文件有效,因为我在这个文件中使用了其他库,而且很快。有什么想法可能是错的吗?

更新#1:

所以我尝试将 import 添加到我的 swift-file,它“有效”。

import libPhoneNumber_iOS/NBPhoneNumberUtil
import libPhoneNumber_iOS/NBPhoneNumber

除了 Xcode 提示这不是一个可行的语法外,它还想在某处添加一个分号。但现在我可以创建我需要的对象,但我无法编译,因为 Xcode 要我先修复错误。这太奇怪了。有什么想法吗?

最佳答案

我现在解决了这个问题。问题是我在 pod 文件中使用了 use_frameworks!,所以路径不同。事实上,当您使用 use_frameworks! 时,您不需要桥接 header ,并且必须直接在 swift 中导入文件。问题是我不知道如何导入它,但现在我知道了。

连播文件:

source 'https://github.com/CocoaPods/Specs.git'

use_frameworks!
platform :ios, '8.0'

target 'test' do

pod 'libPhoneNumber-iOS', '~> 0.8'

end

target 'testTests' do

end

在 Xcode 项目中,您不再需要桥接 header ,只需在要使用它的地方导入库,如下所示:

import libPhoneNumber_iOS

现在它应该可以工作了。希望这对其他人有帮助。

关于ios - 桥接头有效,但导入无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208855/

相关文章:

ios - UICollectionView subview 平移不滚动

iphone - 如何调整这个 UITableView 以便我可以获得我想要的东西?

ios - 如何删除已在 Xcode Storyboard中设置的约束

ios - XCode 6.1 (6A1052d) 上未显示 IBOutlets

swift - Swift3 函数声明中新的 "for"、 "at"、 "in"关键字是什么?

ios - 快速更新 TableView 失败

ios - 为设备构建时遇到错误 - flutter

ios - 静态单元格中 UITableViewCell 中 UIDatePicker 的高度中断

ios - 开始使用 iOS 推送通知

ios - 将 UITextField 添加到代码作为 socket 时发出 Sigabrt 信号