ios - shoud UIAlertView可用于NSUrlConnection的返回块吗?

时间:2012-11-19 00:40:07

标签: ios ios5 nsurlconnection uialertview

当我在NSUrlConnection的返回块中使用UIAlertView时,我发生了一些罕见的崩溃。我不允许在异步线程中使用UIAlertView吗?

大多数情况下,它似乎工作正常。

2 个答案:

答案 0 :(得分:3)

所有与UI相关的代码都需要在主线程上工作。

当我在另一个线程上显示alertView时,我遇到了类似的崩溃。

您需要使用dispatch_asyncperformSelectorOnMainThread显示alertView。

        dispatch_async(dispatch_get_main_queue(), ^{

          UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" 
                    message:@"Message" 
                delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

          [alert show];
       });

          UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" 
                    message:@"Message" 
                delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
         [alert performSelectorOnMainThread:@selector(show) withObject:nil waitUntillDone:NO];

答案 1 :(得分:1)

我认为你只能在主线程上使用UIAlertView。 在返回区块中使用performSelectorOnMainThread:<#(SEL)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>