Сканирование qrcode и штрих-кода с камеры и изображения, выбранного из библиотеки изображений в swift
Я новичок с Ios. я учусь быстро и упускать из виду объект c.
В настоящее время я пишу демоверсию с swift и xcode 6.1, которая может сканировать qrcode и штрих-код с камеры или изображения из библиотеки изображений.
Я знаю, что фреймворк AVFoundation поддерживает сканирование QR-кода и штрих-кода, но он может сканировать только с камеры.
Я искал и нашел zbarSDK, который поддерживает код сканирования с камеры и изображения. Я делаю как инструкции вhttp://zbar.sourceforge.net/iphone/sdkdoc/ а такжеNSFastEnumeration в Swift (конвертировать код в Swift). Однако, когда я запускаю приложение, после выбора изображения из библиотеки, происходит ошибка.
Это мой код
import UIKit
import AVFoundation
extension ZBarSymbolSet: SequenceType {
public func generate() -> NSFastGenerator {
return NSFastGenerator(self)
}
}
class FirstViewController: UIViewController, ZBarReaderDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
let reader = ZBarReaderController()
@IBOutlet weak var lblResult: UILabel!
@IBOutlet weak var imgView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
reader.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func scanCode(sender: AnyObject) {
let scanner = reader.scanner
scanner.setSymbology(ZBAR_I25, config: ZBAR_CFG_ENABLE, to: 0)
reader.modalPresentationStyle = .Popover
presentViewController(reader, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
var results: NSFastEnumeration = info["ZBarReaderControllerResults"] as NSFastEnumeration
var symbolFound : ZBarSymbol?
// =============== Error here ==================
for symbol in results as ZBarSymbolSet {
symbolFound = symbol as? ZBarSymbol
break
}
var resultString = NSString(string: symbolFound!.data)
println(resultString)
}
}
вот изображение ошибки
Я буду очень признателен, если кто-нибудь сообщит мне, почему произошла ошибка и как ее исправить, или есть какой-либо способ отсканировать код с изображением с помощью AVFoundation или другой библиотеки (с подробным документом и образцом), чтобы сделать это (пожалуйста, дайте подробные инструкции потому что я только что изучил Swift и IOS в течение 3 недель). Благодарю.