開源架構:ZXing

來源:互聯網
上載者:User

引言:

二維碼的普及速度令人咋舌,現在隨處的實體廣告在邊角處都附上一張二維碼,提示使用者掃描相關資訊,瞭解更多,並且張小龍說,PC的入口在於搜尋方塊,而手機的入口在於二維碼.

因為二維碼解決了手機輸入資訊的困難.除了感歎人類的聰明之外,更多的是如何利用這已有的技術去滿足我們在應用上面的需求.

當然了,內部演算法不在本博文的介紹範圍內,主要介紹如何使用它.

參考資料:

1:開博來的第一篇文貼:zxing2.0二維碼在xcode4.2中的使用

http://blog.csdn.net/icash/article/details/7727299

2:ios中使用zxing遇到的問題

http://blog.csdn.net/zzfsuiye/article/details/8244917

3:讓ZXing 支援條碼掃描

http://hi.baidu.com/397362542/item/a574ce39b267fdd12f8ec23b

如何安裝:

1:ZXingWidget的託管地址如下:

http://code.google.com/p/zxing/downloads/list

2:關於庫裡的一些檔案

不是所有的檔案我們都用的到,

下載zxing2.0後,解壓得到zxing-2.0檔案夾,裡面只保留  cpp  和 iphone 兩個檔案夾就可以了。

3:我比較用WorkSpace(工作空間)的方式引入第三方資源

那麼有一步驟可以省去:

4:frameWorks添加如下幾項:

libZXingWidget.a

AddressBook

AddressBookUI

AudioToolbox

AVFoundation

CoreMedia

CoreVideo

libiconv.dylib

完成後如:

5:不要忘記設定一個掃描成功時的音頻檔案:

widController.soundToPlay = [NSURL fileURLWithPath:[mainBundle pathForResource:@"beep-beep" ofType:@"aiff"] isDirectory:NO];

6:保持項目的C++混編譯模式

首先請做如下操作:

1.請更改你的delegate檔案的.m檔案為.mm (請注意,如果你在項目中重新命名,並不會使實體路徑中的檔案名稱被更改,所以請更改物理檔案名稱)

MyZxingAppDelegate.m 改成 

 

MyZxingAppDelegate.mm

2.請更改你要使用zxing的專案檔的.m檔案為.mm

MyZxingViewController.m 

改成 

 

MyZxing

ViewController

.mm

使用:

7:下載我的Demo 試試看:

XCode 4.6 iOS6.1 測試通過

Demo地址:猛擊此處!

可能遇到的問題:

1.如果你項目中使用了zxing,但是在xcdoe升級到4.5以後出現Incompatible pointer types sending 'Class' (aka 'Class *') to parameter of type 'id<NSCopying>'錯誤,解決辦法:重新下載更新版本的ZXing, 可以使用命令下載最新版本:svn
checkout http://zxing.googlecode.com/svn/trunk/ zxing-read-only。

2.如果出現了問題Undefined symbols for architecture
i386"std::string::c_str() const", referenced from。。。。,

將你項目中的Apple LLVM compiler 4.1 - language中的 c Language Dialect、c++ Language Dialect、c++ standard Library設定成所選的值。參考http://stackoverflow.com/questions/12665457/zxing-in-xcode-4-5-and-ios-6

3.編譯成功往真機上裝的時候出現Choose a destination with a supported architecture in order to run on this device ,由於ios裝置不支援armv7s,所以必須將Architectures設定為armv6,但是僅僅需要改動valid architectures就行,不要改動architectures,否則容易引起真機不運行。把architectures改為$(ARCHS_STANDARD_32_BIT)就可以撞到手機上了。見http://blog.sina.com.cn/s/blog_90a0ad8d01013uuh.html

4:XCode 手賤升級到了 4.6  ZXingSDK  編譯不過去了.

出現什麼變數聲明了沒有使用的編譯錯誤提示(可是明明使用了):

Member initializer 'bits_' does not name a non-static data member or base class

Google老外牛人多啊,或者說老外也遇到這個問題了,然後提問了,問答地址如下:

http://code.google.com/p/zxing/issues/detail?id=1494

裡面說到將 ZXingWidget - BuildSettings - Other Warning Flags 裡的 -Werror -Wno-unused-parameter 去掉,

但其實只要去掉 -Werror 就可以了, 如果
-Wno-unused-parameter 
 這個也去掉了會產生很多變數沒有使用的警告.

此時可以編譯通過了,煩惱的是  也有少許警告.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.