如何暂停语句执行和 UIalertview 在单独的循环上运行
Posted
技术标签:
【中文标题】如何暂停语句执行和 UIalertview 在单独的循环上运行【英文标题】:How to Pause Statements Execution and UIalertview Run On separate Loop 【发布时间】:2014-09-24 04:33:45 【问题描述】:您好,我正在开发 Xmpop 聊天应用程序,同时文件传输要求对传入文件接受的权限。对于这个任务我是这样使用的。
UIAlertView *alrt = [[UIAlertView alloc]initWithTitle:@"Incommming File" message:name delegate:self cancelButtonTitle:@"Reject" otherButtonTitles:@"Accept", nil];
alrt.tag = 1111;
[alrt show];
while (buttonClicked == -1)
NSLog(@"-- runloop");
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]];
if (buttonClicked == 1)
NSLog(@"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~YES");
return YES;
else
NSLog(@"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~NO");
return NO;
此代码在示例应用程序中工作,但在我的聊天应用程序中 UI 阻塞。我该怎么做请帮助我.. 提前致谢。
【问题讨论】:
可以分享例子的链接吗? 你能知道这个while
循环是在哪个函数中调用的吗?
以上语句都属于'-(BOOL)incommingFileRequest:(XMPPIQ *)inIq' 方法应该返回我们选择的Bool,(Accept or Reject)
可以分享例子的链接吗?
【参考方案1】:
尝试在异步块中调用[alrt show];
!
类似这样的:
dispatch_async(dispatch_get_main_queue()) ^
[alrt show];
希望这会有所帮助!
【讨论】:
以上是关于如何暂停语句执行和 UIalertview 在单独的循环上运行的主要内容,如果未能解决你的问题,请参考以下文章