2011-10-31 21 views
0

我不知道问题是格式良好的。所以我有一个uialertview在启动应用程序显示30秒。在这个uialertview中有一个“ok”按钮,用户可以点击并释放警报。如果用户在30秒内没有点击此按钮,警报将会释放。 这里是代码..使用布尔值来检查应用程序目标的状态c

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" 
               message:@"Welcome!" 
               delegate:nil 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
[alert setDelegate:self]; 
[alert show]; 

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*30.0); 
dispatch_after(delay, dispatch_get_main_queue(), ^{ 
[alert release]; 

} 

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 

} 

所以我要实现用布尔控制检查,如果用户点击确定或不... u能帮助我吗?我是新的目标c :)谢谢!

回答

0

显示您的警报视图如下: 假设ISD是BOOL值(其声明为在h文件类成员)

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" 
               message:@"Welcome!" 
               delegate:self 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
[alert setTag:1000]; 
[alert show]; 
isD = NO; 

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*5.0); 
dispatch_after(delay, dispatch_get_main_queue(), ^{ 

    if (!isD) { 
     [alert dismissWithClickedButtonIndex:0 animated:YES]; 
    } 
}); 
[alert release]; 

和写入UIAlertViewDelegate方法

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
    if(alertView.tag == 1000) 
    { 
     isD = YES; 
    } 
} 
+0

ISD = YES具有警告: - > warning:语义问题:从'BOOL'(又名'signed char')指向'BOOL *'(aka'signed char *')的指针转换不兼容整数 – JackTurky

+0

BOOL不是指针。你是如何在头文件中声明的? BOOL * isD;或BOOL isD;第二个是正确的。 – Ilanchezhian

+0

完美:D我宣布它为指针:) – JackTurky