2011-07-18 10 views
0

私のアプリでは、数秒後にネットワーク接続が遅すぎるとエラーメッセージを表示したいと考えています。私はどのようにこれを実装すべきですか?一定時間後にアクションをトリガする方法は?

-(void)setProjectID:(NSString *)newProject { 
    [self willChangeValueForKey:@"projectID"]; 
    [projectID release]; 
    projectID = [newProject copy]; 
    [self didChangeValueForKey:@"projectID"]; 

    // Since we have an ID, now we need to load it 
    NSInvocation *returnInvocation = [NSInvocation invocationWithMethodSignature: 
             [Detail instanceMethodSignatureForSelector:@selector(configureView:)]]; 
    [returnInvocation setTarget:self]; 
    [returnInvocation setSelector:@selector(configureView:)]; 
    [returnInvocation retainArguments]; 

    fetch = [[WBWDocumentFetcher alloc] init]; 
    [fetch retrieveDocument:[NSURL wb_URLForTabType:PROJECT_DETAILS inProject:projectID] returnBy:returnInvocation]; 
} 
-(void)configureView:(NSDictionary *)serverResult 
{ 
} 

おかげで、あなたはperformSelector:afterDelay:または可能性performSelector:withObject:afterDelay:を使用したい

答えて

1

: は、ここでは、コードです。

次に、呼び出されたメソッドの先頭で、ページがロードされているかどうかを確認します。そうでない場合は、UIAlertViewと表示して負荷をキャンセルします。

+0

このコードではこのコードを使用する必要があります。私は自分のコードで何も見ていない。 – Ashutosh

+0

また、ページが読み込まれているかどうかを確認する必要がありますか? – Ashutosh

+0

コードを一切見ずに、言うのはむしろ難しいです。たとえば、 'UIWebView'を使用している場合、おそらく' -webViewDidStartLoad: 'に入れたいと思うかもしれません。 – PengOne

0

サーバーを要求するのにNSURLRequestを使用している場合は、次のコードを使用してタイムアウトを判断するよりも、

//In this you can set timeoutinterval for request 
NSURLRequest* request = [NSURLRequest requestWithURL:yourURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

//If request is failing for time out reason you can check that and alert user accordingly. 
-(void)connectionFailed:(NSError *)error 
{ 
UIAlertView *objAlert = [[UIAlertView alloc] init]; 
[objAlert setTitle:@"Internet Connection"]; 
[objAlert addButtonWithTitle:@"Ok"]; 
if([error code] == -1001 || [[error localizedDescription] isEqualToString:@"timed out"]){ 
     [objAlert setMessage:@"Request Timed Out."]; 
     [objAlert show]; 
    } 
} 
関連する問題