Я использую структуру XZINGObjC для создания EAN-Barcode-Image. Следуя документации, я делаю это так
//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;
}
Это работает, если я выполняю этот код с помощью точек останова! Однако я думаю, что в какой-то момент изображение не готово к использованию?! Но не могу найти причину.
Что я пробовал:
- использование
imageRef
иuiImage
в качестве локальных переменных (EXC_BAD_ACCESS CRASH) - попробовал эту операцию в фоновом потоке (EXC_BAD_ACCESS CRASH)
То же самое здесь, каждое решение работало, если бы я использовал точки останова и шаг за шагом выполнял код. В чем здесь моя ошибка? Есть идеи? Заранее спасибо!
imageRef
? - person Sulthan   schedule 12.05.2014