[英]Unable to integrate ZXingObjC in a iOS Swift Project
我正在開發一個iOS項目,它在條形碼中顯示客戶編號。 我在GitHub中描述了CocoaPods安裝了框架ZXingObjC
。
我可以毫無錯誤地編譯我的項目。 我也可以在Objective-C類中使用ZXingObjC
類,沒有錯誤。 之后,我將import命令#import <ZXingObjC/ZXingObjC.h>
到我的橋接頭文件中,就像我的其他自定義objective-c類一樣,沒有編譯錯誤。 (我通過銷毀一些import語句來測試頭文件並獲得了預期的文件未找到異常。)
但現在,我不能在我的swift類中使用任何類的ZXingObjC
。 我只得到以下編譯錯誤: Use of undeclared type '...'
。 Xcode自動完成功能也不起作用。
例如
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框架?
實際上這是一個簡單的問題:
Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'ZXingObjC', '~> 3.1'
所以,在終端上:
cd workspace
pod install
然后,一旦在Xcode上打開項目,你必須編輯添加ZXingObj的橋接頭:
#import <ZXingObjC/ZXingObjC.h>
最后,在使用ZXingObjC的swift類中,您必須導入ZXingObjC。
import ZXingObjC
class ZXingObjCWrapper {
func encode() {
let writer = ZXMultiFormatWriter.writer()
....
}
}
當您需要使用此條形碼設置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
}
標題搜索路徑在我的項目中不正確。 正確的價值觀是:
$(inherited)
"${PODS_ROOT}/Headers/Public"
"${PODS_ROOT}/Headers/Public/ZXingObjC"
第二行和第三行未通過CocoaPods安裝添加。
編輯:必須將已安裝的框架添加到項目的“常規”選項卡中的“嵌入式二進制文件”中。
我嘗試了此頁面上的所有內容,將ZXingObjC添加為Pod。 我的目標是生成Aztec條形碼。
我檢查了我的標題搜索路徑。 正如Reddas所說,我不得不手動添加“$ {PODS_ROOT} / Headers / Public / ZXingObjC”。 我還將ZXingObjC添加為嵌入式二進制文件(在“常規”選項卡中)。
我檢查了我的橋接文件,一切都很好。 我檢查了我想要生成條形碼的視圖控制器。 進口ZXingObjC就在那里。
沒有編譯錯誤。 但我無法聲明ZXingObjC的變量。
沒運氣。 還有什么建議嗎?
編輯 - 我進入了目標,構建設置並搜索了標題搜索路徑。 我添加了“$ {PODS_ROOT} / Headers / Public / ZXingObjC”和“$ {PODS_ROOT} / Headers / Private / ZXingObjC”
這似乎疏通了任何破裂。 它現在有效。 奇怪的是,我現在甚至可以刪除這些條目並且它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.