Objective c 线程/函数完成后调用函数
我想在类中的一个线程/另一个函数完成后从另一个视图中删除一个视图。目前,我正在使用下面的代码在设置的时间段后删除它,但是很明显,函数完成时间是不同的Objective c 线程/函数完成后调用函数,objective-c,multithreading,cocoa-touch,ios,Objective C,Multithreading,Cocoa Touch,Ios,我想在类中的一个线程/另一个函数完成后从另一个视图中删除一个视图。目前,我正在使用下面的代码在设置的时间段后删除它,但是很明显,函数完成时间是不同的 LoadingView *loadingView = [LoadingView loadingViewInView:self.view]; [loadingView performSelector:@selector(removeView) withObject:nil afterDelay:10.0
LoadingView *loadingView =
[LoadingView loadingViewInView:self.view];
[loadingView
performSelector:@selector(removeView)
withObject:nil
afterDelay:10.0];
有没有一个简单的方法可以做到这一点?我在网上查过了,似乎什么也找不到。这是否意味着我必须自己编写此功能?您可以使用以下方法从另一个线程中删除视图:
[loadingView performSelectorOnMainThread:@selector(removeView) withObject:nil waitUntilDone:NO];
当然,您只需要在某个线程可以访问的地方维护对loadingView的引用。当您要删除它时,为什么不能直接调用[loadingView removeView]?当然,请记住UIKit线程的安全性和所有…非常感谢,这非常有效。轻微问题,虽然不是主要问题,但在加载视图消失和显示数据之间有轻微(但明显)延迟。我正在加载的是来自线程中URL的图像,你知道如何防止吗?很好,黑色。已更新以反映此案例。嗯,仍有延迟。这与我从URL下载图片有关吗?@Jack:你什么时候会拒绝加载视图?如果在图像完全加载之前关闭它,显然会有延迟。