gpt4 book ai didi

objective-c - UIImageView setImage 在委托(delegate)方法中不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 21:16:38 26 4
gpt4 key购买 nike

我在 opencv 委托(delegate)方法 processImage 中调用 setImage 函数时遇到问题。
当我在 viewDidLoad 中调用 setImage 时,我可以看到图像,但是当我在 processImage 中执行相同操作时,它不起作用。

这里有什么问题?

- (void)viewDidLoad
{
[super viewDidLoad];

// This works !
[processImageView setImage:[UIImage imageNamed:@"resistor3.jpg"]];
}

- (void)processImage:(cv::Mat&)img {

// This does not work anymore !
[processImageView setImage:[UIImage imageNamed:@"resistor3.jpg"]];
}

最佳答案

当您修改 UI 时,您必须从主线程进行,如果委托(delegate)方法被调用,则很可能是在另一个线程上调用它。试试这个。

- (void)processImage:(cv::Mat&)img   {
dispatch_async(dispatch_get_main_queue(), ^{
[processImageView setImage:[UIImage imageNamed:@"resistor3.jpg"]];
// I also think you should use the dot syntax, but that's purely a style thing
// processImageView.image = [UIImage imageNamed:@"resistor3.jpg"];
});
}

编辑:添加关于使用点语法的建议

关于objective-c - UIImageView setImage 在委托(delegate)方法中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21975341/

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