Utilizzo il framework XZINGObjC per creare un'immagine EAN-Barcode. In seguito la documentazione, lo sto facendo comeObiettivo C: Come convertire CGImageRef in UIImageView?
//in viewDidAppear
//XZING: create Matrix
NSString* eanString = @"1234567890123"; //sth. like that
ZXBitMatrix* result = [writer encode:eanString
format:kBarcodeFormatEan13
width:500
height:500
error:&error];
if (result) {
//XZING: convert matrix to CGImageRef
CGImageRef imageRef = [[ZXImage imageWithMatrix:result] cgimage];
//CRASHLINE HERE!! (this is NOT in the XZING documentation, but i cannot figure out the issue!)
UIImage* uiImage = [[UIImage alloc] initWithCGImage:imageRef]; //<--CRASH: EXC_BAD_ACCESS
if(image != nil){
//assigning image to ui
self.barCodeImageView.image = uiImage;
}
Funziona, se io passo attraverso questo codice utilizzando i punti di interruzione! Tuttavia, penso che ad un certo punto un'immagine non sia pronta per l'uso ?! Ma non riesco a trovare la ragione.
Quello che ho cercato:
- utilizzando
imageRef
euiImage
come variabili locali (EXC_BAD_ACCESS CRASH) - provato che il funzionamento in un thread in background (EXC_BAD_ACCESS CRASH)
Stesso qui, ogni soluzione ha funzionato se ho usato punti di interruzione e ho fatto un passo dopo fila attraverso il codice. Qual è il mio errore qui? Qualche idea? Grazie in anticipo!
controllare questo [collegamento di riferimento] (http://stackoverflow.com/questions/12756295/uiimage-from-cgimageref). forse avrai un po 'di aiuto. – Pawan
Se stai passando, qual è il contenuto di 'imageRef'? – Sulthan
@pawan: grazie, l'ho trovato ma non ha risolto il mio problema @Sulthan: 'imageRef' non è nullo se intendi che ... funziona come dovrebbe se usassi i breakpoint. Quindi qualcosa è già stato rilasciato o non è pronto per l'uso, ma non so che cosa esattamente – longilong