ネット上に載ってなかったので書いてみた
iOS定番のバーコード読み取りライブラリZbarをObjective-CからSwiftに書き換えてみた。
まずこんな感じでクラスにextensionさせる
と言うかほぼここがみそ!
ViewController
extension ZBarSymbolSet: SequenceType {
public func generate() -> NSFastGenerator {
return NSFastGenerator(self)
}
}
class ViewController: UIViewController,ZBarReaderDelegate{
//ViewControllerの処理
}
続いてバーコード読み込みのビューを作成。
ViewController
//ZBarReaderViewControllerクラスからインスタンス生成
var reader = ZBarReaderViewController()
//各種設定を盛り込む
//zbarのコントローラーを非表示
reader.showsZBarControls = false
reader.readerDelegate = self
//Flash自動点灯
reader.readerView.torchMode = 0
//オーバーレイの呼び出し
var scanner = ZBarImageScanner()
//カメラビューの上に載せたいもの ボタン等 scanViewOverlay()はなにかViewを返す関数を作る
reader.cameraOverlayView = scanViewOverlay()
scanner = reader.scanner
scanner.setSymbology(ZBAR_I25, config: ZBAR_CFG_ENABLE, to: 0)
//カメラビューの呼び出し
presentViewController(reader, animated: true, completion: nil)
ようやく重い腰を上げSwift化しました。
Ovjective-Cに比べコード量も減り使いやすくなったと思います。