1

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

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

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

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

更新#1:

所以我尝试将导入添加到我的 swift 文件中,并且它“有效”。

import libPhoneNumber_iOS/NBPhoneNumberUtil
import libPhoneNumber_iOS/NBPhoneNumber

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

4

2 回答 2

5

我现在解决了这个问题。问题是我use_frameworks!在我的 pod 文件中使用,所以路径不同。其实使用use_frameworks!的时候不需要桥接头,直接在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 项目中,您不再需要桥接头,只需将库导入您想要使用它的位置,如下所示:

import libPhoneNumber_iOS

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

于 2015-10-20T06:39:59.817 回答
1

答案是在您的桥接头中像这样导入它们:

#import "NBPhoneNumberUtil.h"
#import "NBPhoneNumber.h"

我用来测试的过程写在下面。

创建一个新的 Xcode 项目

我为 Objective-C 使用了单视图应用程序模板。

创建 Podfile 并安装

播客文件:

source 'https://github.com/CocoaPods/Specs.git'
pod 'libPhoneNumber-iOS', '~> 0.8'

安装:

$ pod install

创建一个 Swift 文件

此时,Xcode 创建了一个桥接头文件。

我使用以下方法将导入添加到桥接头中:

#import "NBPhoneNumberUtil.h"
#import "NBPhoneNumber.h"

在 Swift 文件中,我写道:

class Test {
    func test() {
        let util = NBPhoneNumberUtil()
    }
}

该项目编译没有错误。

于 2015-10-19T09:52:35.183 回答