我正在开发一个iOS项目,它在条形码中显示客户编号。我已经使用C {[3}}中描述的CocoaPods安装了框架ZXingObjC
。
我可以毫无错误地编译我的项目。我也可以在Objective-C类中使用ZXingObjC
的类,没有错误。之后,我将导入命令#import <ZXingObjC/ZXingObjC.h>
添加到我的桥接头文件中,就像我的其他自定义objective-c类一样,没有编译错误。 (我通过销毁一些import语句测试了头文件,并得到了预期的文件未找到异常。)
但是现在,我不能在我的快速课程中使用任何类ZXingObjC
。我只得到以下编译错误:Use of undeclared type '...'
。 Xcode自动完成功能也不起作用。
e.g。
var test : ZXMultiFormatWriter?
>> Use of undeclared type 'ZXMultiFormatWriter'
我试过了:
$(SRCROOT)/Pods/Headers/Public/Adjust
Enable Modules: YES
Other Linker Flags: $(inherited) -ObjC
-framework "ZXingObjC"
#import
<ZXingObjC/ZXingObjC.h>
和#import "ZXingObjC/ZXingObjC.h"
- 否
差)我正在使用:
有谁知道这个问题?有人可以帮忙吗? 如何在swift中提供ZXingObjC框架?
答案 0 :(得分:5)
实际上这是一个简单的问题:
Podfile
Handle<Value> js_result = jsUpdateFunc->Call(jsGlobal, 0, args);
所以,在终端上:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'ZXingObjC', '~> 3.1'
然后,一旦在Xcode上打开项目,你必须编辑添加ZXingObj的桥接头:
cd workspace
pod install
最后,在使用ZXingObjC的swift类中,你必须导入ZXingObjC。
#import <ZXingObjC/ZXingObjC.h>
答案 1 :(得分:1)
当您需要使用此条形码设置UIImage时的其余代码:
func generateDataMatrixQRCode(from string: String) -> UIImage? {
do {
let writer = ZXMultiFormatWriter()
let hints = ZXEncodeHints() as ZXEncodeHints
let result = try writer.encode(string, format: kBarcodeFormatDataMatrix, width: 1000, height: 1000, hints: hints)
if let imageRef = ZXImage.init(matrix: result) {
if let image = imageRef.cgimage {
return UIImage.init(cgImage: image)
}
}
}
catch {
print(error)
}
return nil
}
答案 2 :(得分:0)
我的项目中的标题搜索路径不正确。正确的价值观是:
$(inherited)
"${PODS_ROOT}/Headers/Public"
"${PODS_ROOT}/Headers/Public/ZXingObjC"
第二行和第三行未通过CocoaPods安装添加。
编辑:必须将已安装的框架添加到项目“常规”选项卡中的“嵌入式二进制文件”中。
答案 3 :(得分:0)
我尝试了此页面上的所有内容,将ZXingObjC添加为Pod。我的目标是生成一个Aztec条形码。
我查看了我的标题搜索路径。正如Reddas所说,我不得不手动添加“$ {PODS_ROOT} / Headers / Public / ZXingObjC”。我还将ZXingObjC添加为嵌入式二进制文件(在“常规”选项卡中)。
我检查了我的桥接文件&amp;一切都很好。我检查了我想要生成条形码的视图控制器。 导入ZXingObjC 就在那里。
没有编译错误。但我无法声明ZXingObjC的变量。
没有运气。还有其他建议吗?
编辑 - 我进入了目标,构建设置并搜索了标题搜索路径。我添加了“$ {PODS_ROOT} /标题/ 公开 / ZXingObjC”和“$ {PODS_ROOT} /标题/ 私有 / ZXingObjC”
这似乎疏通了任何破裂。它现在有效。奇怪的是,我现在甚至可以删除这些条目并且它可以工作。