UIAlertView显示的问题一直没搞明白,大家帮忙

tweak中代码如下
UIAlertView *alertView =[UIAlertView alloc] initWithTitle:@“message” message:strData delegate:nil cancelButtonTitle:@“ok” otherButtonTitles:nil];
[alertView show];
[alertView release];
sleep(10);
我原意是UIAlertView显示出来,然后显示10秒再进行后面的代码,可是实际执行看到的效果是10秒以后才显示UIAlertView,这是为啥啊 ?

因为你阻塞了主线程,延迟执行代码需要用gcd:


dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
         NSLog(@"now is: %@",  [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000]);
});

原因就是gangzimo说的这样,10秒以后执行后面的代码可以用gcd,也可以用NSTimer

感谢大神

感谢狗神

大神,我想实现的程序执行到[alertView show]以后,等待到用户的确定以后,再执行后边的,或者等待10秒以后,自动关闭,然后再执行后边的代码,现在用gcd的话,直接就执行了show后边的代码了

我想实现的程序执行到[alertView show]以后,等待到用户的确定以后,再执行后边的,或者等待10秒以后,自动关闭,然后再执行后边的代码,现在用gcd的话,直接就执行了show后边的代码了,搞了一下午也不得要领

你做过iOS开发吗?
在确定按钮点击后的响应函数里调用gcd即可满足你的要求了,这是正向开发的基础知识,跟逆向已经完全没有关系了