我有一个名为“MainUI.m”的主“类”/视图控制器,它显示我的应用程序的UI。在这个视图控制器中,我声明了另一个名为“DoActivity.m”的类的实例,所以我可以在我的MainUI中调用一个名为“getFeed”的方法。在方法结束之前,它必须从我的MainUI更新图像。然后该方法再次重复。我的问题是每当我在方法中更新UI时应用程序崩溃:
MainUI* mu = [[MainUI alloc] init];
-(void)getFeed{
//some tasks here
mu.imageView.image= imageInDoActivity.image;
}
修改
错误说明了
Thread 1: Program recieved signal:'EXC_BAD_ACCESS'
并在此行代码中突出显示:
mu.imageView.image= imageInDoActivity.image;
修改
我在DoActivity中有一个MainUI属性:
@property MainUI* mu;
但在我的DoActivity构造函数中,我没有初始化所述属性。相反,在MainUI中调用[self.doAct getFeed]之前,doAct是
@property DoActivity* doAct;
我设置
self.doAct.mu = self;
在MainMU中,以便DoActivity知道它应该更新调用它的类的UI。
我该如何解决这个问题?
答案 0 :(得分:2)
您需要在主线程上执行UI内容:
-(void)getFeed{
//some tasks here
dispatch_async(dispatch_get_main_queue(), ^{
mu.imageView.image= imageInDoActivity.image;
});
}
我不确定这是否真的是导致崩溃的原因。崩溃日志真的很有帮助。