Как импортировать фреймворк Zbar в Swift Project
У меня есть проект, и в настоящее время я пытаюсь преобразовать его в Swift project, но я не могу понять, как представить считыватель штрих-кодов Zbar, который сканирует из канала камеры. На мой текущий проект я позвонил так
- (IBAction)scanButton:(id)sender {
// ADD: present a barcode reader that scans from the camera feed
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
// TODO: (optional) additional reader configuration here
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
// present and release the controller
[self presentViewController:reader animated:YES completion:nil];}
Примечание: Что я делал до сих пор
- скопируйте фреймворк в swift
-
Добавлен путь фреймворка к поисковым путям заголовка (раздел Targets > Build Settings)
- $(PROJECT_DIR) / Test/ZBarSDK / Headers / ZBarSDK
- создано Имя Проекта-Мост-Заголовок.h для наведения мостов (добавлены все файлы h из zbar)
- Добавлен Заголовок Projectname-Bridging.h to Header пути поиска
После этого либо если я пишу "import ZBarSDK", либо ZBarReaderDelegate все равно выдает мне ошибку!
3 ответа:
Для Swift 3:
extension ZBarSymbolSet: Sequence { public func makeIterator() -> NSFastEnumerationIterator { return NSFastEnumerationIterator(self) } } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { // ADD: get the decode results let results: NSFastEnumeration = info[ZBarReaderControllerResults] as! NSFastEnumeration var symbolFound : ZBarSymbol? for symbol in results as! ZBarSymbolSet { symbolFound = symbol as? ZBarSymbol break } let resultString = symbolFound!.data print(resultString) }
Вот решение
Следующая ссылка помогла мне https://stackoverflow.com/a/24005242/4059179
Но после этого у меня была проблема NSEnumeration, так что вот второе решение проблемы
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]){ var results: NSFastEnumeration = info[ZBarReaderControllerResults] as NSFastEnumeration }
Не забудьте расширить
extension ZBarSymbolSet: SequenceType { public func generate() -> NSFastGenerator { return NSFastGenerator(self) } }
У меня есть этот проект
Использование cocoapods для импорта ZBarSDK в проект Swift 2.0.