ASIHttprequest中的请求失败

时间:2012-03-30 12:31:01

标签: objective-c ios

我在iOS项目中使用ASIHttpRequest。在requestFail我这样做:

#pragma mark Erreur requête de connexion 
- (void)requestFailed:(ASIHTTPRequest *)request
if([[request error] code] == ASIConnectionFailureErrorType )
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion" 
                                                        message:@"Connexion avec le serveur impossible : vérifiez vos paramètres réseaux." 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK" 
                                              otherButtonTitles:nil];

        [alert show];

    }
    else if ([[request error] code] == ASIRequestTimedOutErrorType) 
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion" 
                                                        message:@"La requête a expiré !" 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK" 
                                              otherButtonTitles:nil];

        [alert show];

    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur de connexion" 
                                                        message:@"Une erreur inconnue est survenue." 
                                                       delegate:nil 
                                              cancelButtonTitle:@"Annuler" 
                                              otherButtonTitles:nil];

        [alert show];

    }    
}

现在,我想用imageView替换我所有的UIAlertView(向用户显示一个特殊的UIImageView告诉他有错误(connexion failure ....),并在没有服务器时删除此imageView错误。

简历:我想在请求失败时显示imageView并删除此图像视图并重新发送请求(我如何使用ASIHtppRequest执行此操作)?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用UIActionSheet来替换UIAlertView,因为ActionSheet可以像UIView一样处理,因此您可以呈现包含UIImageView的ActionSheet。您还可以使用其中一个按钮来关闭ActionSheet以重新加载ASIHTTPRequest。 以下代码显示了UIActionSheet的委托方法,允许您添加UIImageView并在单击取消按钮时触发您的请求。

#pragma -
#pragma ActionSheet Delegate

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {

     UIImageView * yourImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 55, 320, 100)];

     //Configure yourImageView...

    //Add picker to action sheet
     [actionSheet addSubview:yourImageView];

    // Release your yourImageView
     [yourImageView release];


}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

     if (buttonIndex != [actionSheet cancelButtonIndex])
     {
         // Call back your ASIHTTPRequest
     }
}

不要忘记在.h文件中实现UIActionSheetDelegate。

祝你好运。