gpt4 book ai didi

objective-c - Objective-C : How to convert CGImageRef to UIImageView?

转载 作者:太空狗 更新时间:2023-10-30 03:47:33 24 4
gpt4 key购买 nike

我正在使用 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;
}

如果我使用断点单步执行此代码,它就可以工作!但是,我认为在某些时候图像还没有准备好使用?!但是我找不到原因。

我尝试过的:

  • 使用 imageRefuiImage 作为局部变量(EXC_BAD_ACCESS CRASH)
  • 在后台线程中尝试了该操作(EXC_BAD_ACCESS CRASH)

同样如此,如果我使用断点并逐行执行代码,每个解决方案都有效。我的错误是什么?有任何想法吗?提前致谢!

最佳答案

经过一些尝试和错误编程后,我可以通过替换以下行来解决问题

  CGImageRef imageRef = [[ZXImage imageWithMatrix:result] cgimage]; 
UIImage* uiImage = [[UIImage alloc] initWithCGImage:imageRef]; //<--CRASH

 UIImage* uiImage = [[UIImage alloc] initWithCGImage:[[ZXImage imageWithMatrix:result] cgimage]];

仍然,我不知道为什么?!我很确定内存中没有保存某些东西,或者 CGImageRef 还没有准备好,如果我尝试将其转换为 UIImage

关于objective-c - Objective-C : How to convert CGImageRef to UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23609593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com