2014-02-25 37 views
0

我正在進行API調用以獲取一些實時信息。當沒有實時信息時,它將返回:如果在API請求中返回錯誤消息,則不要開始循環

error =「沒有找到真人遊戲」;

否則它會返回不同的信息,如hometeam,awayteam,score等。

在我的循環中,我將這些信息添加到數組arrayEuropa中。問題是如果api請求返回錯誤消息,它不應該向arrayEuropa添加任何東西。

我該如何獲得這個?

我試過不同的事情,當它返回錯誤信息,但沒有錯誤信息時崩潰。

這裏是我的代碼:

NSDictionary* headers4 = @{@"X-Mashape-Authorization": @"key"}; 
NSDictionary* parameters4 = @{}; 

UNIHTTPJsonResponse* response4 = [[UNIRest get:^(UNISimpleRequest* request4) { 
    [request4 setUrl:@"https://willjw-statsfc-competitions.p.mashape.com/live.json?key=APIKEY&competition=europa-league&timezone=Europe%2FLondon"]; 

    [request4 setHeaders:headers4]; 
    [request4 setParameters:parameters4]; 
}] asJson]; 


NSData* rawBody4 = [response4 rawBody]; 
results4 = [NSJSONSerialization JSONObjectWithData:rawBody4 options:NSJSONReadingMutableContainers error:nil]; 

for (int i = 0; i <= results4.count-1; i++) 
{ 


    NSString *homeTeam = [[results4 valueForKey:@"homeshort"] objectAtIndex:i ]; 
    NSString *awayTeam = [[results4 valueForKey:@"awayshort"] objectAtIndex:i ]; 
    NSString *time = [[results4 valueForKey:@"statusshort"] objectAtIndex:i ]; 
    NSString *homeScore = [NSString stringWithFormat:@"%@", [[[results4 valueForKey:@"runningscore"] objectAtIndex:i ] objectAtIndex:0]]; 
    NSString *awayScore = [NSString stringWithFormat:@"%@", [[[results4 valueForKey:@"runningscore"] objectAtIndex:i ] objectAtIndex:1]]; 


    [arrayEuropa addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:homeTeam,@"hometeam", awayTeam,@"awayteam", time, @"time", homeScore, @"homescore", awayScore, @"awayscore", nil]]; 

} 
+0

你在哪裏檢查響應中的錯誤字段? –

+0

我現在不檢查if(results [@「error」]),但不能正常工作 – user3258468

+0

您可以記錄results4的內容以獲得成功和錯誤,並將其添加到問題中。 – Wain

回答

0

也許添加存儲的JSON,它會更容易幫助..

但你應該做的是首先檢查是否有一個值讓我們說:

  if([[results4 valueForKey:@"homeshort"] objectAtIndex:i ]) 

之前,你存儲它。或者甚至更好,你可以檢查錯誤:

  if([[results4 valueForKey:@"error"] isEqualToString: ""No live games found" ]) 
      { return; } 

並返回。

希望這有助於

相關問題