Cómo importar Zbar Framework en Swift Project
frameworks xcode6 (3)
Tengo este proyecto
Usando cocoapods para importar el proyecto ZBarSDK al Swift 2.0.
Tengo un proyecto y actualmente estoy tratando de convertirlo al proyecto Swift, pero no pude entender cómo presentar un lector de código de barras Zbar que escanea desde la alimentación de la cámara. En mi proyecto actual llamé así
- (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];}
Nota: Lo que hice hasta ahora
- Copie el marco en el veloz
Se agregó una ruta de marco a las Rutas de Búsqueda de Cabecera (Sección de Objetivos> Configuraciones de Construcción)
- $ (PROJECT_DIR) / Test / ZBarSDK / Headers / ZBarSDK
- Creado Projectname-Bridging-Header.h para Bridging (se agregaron todos los archivos h de zbar)
- Se agregó Projectname-Bridging-Header.h a las rutas de búsqueda de encabezado
Después de eso, si escribo "import ZBarSDK" o ZBarReaderDelegate todavía me da error!
para 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)
}
Aquí está la solución
El siguiente enlace me ayudó https://.com/a/24005242/4059179
Pero después de eso tuve el problema de NSEnumeration así que aquí la solución del segundo problema
func imagePickerController(picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [NSObject : AnyObject]){
var results: NSFastEnumeration = info[ZBarReaderControllerResults] as NSFastEnumeration
}
No te olvides de extender
extension ZBarSymbolSet: SequenceType { public func generate() -> NSFastGenerator { return NSFastGenerator(self) }
}