Vâng, tôi đã làm điều tương tự. Tôi đã phải chạy một yêu cầu ajax đồng bộ đã đóng băng giao diện người dùng của tôi. Vì vậy, đây là cách tôi đã khắc phục sự cố:
__block NSString *message;
dispatch_queue_t q = dispatch_queue_create("sign up Q", NULL);
dispatch_async(q, ^{
NSString *function = [[NSString alloc] initWithFormat: @"signup(\'%@\',\'%@\',\'%@\')",self.email.text,self.password.text,self.name.text];
dispatch_async(dispatch_get_main_queue(), ^{
NSString *result = [self.webView stringByEvaluatingJavaScriptFromString:function];
NSLog(@"%@",result);
if ([result isEqualToString:@"1"]) {
message = [NSString stringWithFormat:@"Welcome %@",self.name.text];
[self.activityIndicator stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
else {
message = [NSString stringWithFormat:@"%@ is a registered user",self.name.text];
[self.activityIndicator stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Message" message:message delegate:self cancelButtonTitle:@"Okay" otherButtonTitles: nil];
[alertView show];
});
});
Logic đơn giản. Đi đến một chủ đề mới, và từ bên trong đó, gửi đến hàng đợi chính và sau đó thực hiện công việc JS và mọi thứ hoạt động như một sự quyến rũ cho tôi ...
Nguồn
2013-03-18 08:04:47
Điều đó sẽ giúp ích gì? –