我在我的 ipad 应用程序中注销时使用MBProgressHUD制作概览加载屏幕。这一进展需要一些时间,因为我必须加密一些更大的文件。
因为我在后台线程中执行此操作并且MBProgressHUD正在主线程上进行动画处理,所以我必须做一些事情才能知道我的后台线程何时完成。
作为测试,我是这样做的:
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDAnimationFade;
hud.labelText = @"Do something...";
[self performSelectorInBackground:@selector(doSomethingElse) withObject:nil];
和方法doSomethingElse:
-(void)doSomethingElse
{
[self encrypt];
[self performSelectorOnMainThread:@selector(doSomethingElseDone) withObject:nil waitUntilDone:YES];
}
和方法doSomethingElseDone:
-(void)logoutInBackgroundDone
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
}
该解决方案有效,但我认为必须有更好的方法?我怎样才能以更好的方式做到这一点?
非常感谢任何帮助。