我正在为一些实时信息进行API调用。如果没有实时信息,它将返回:
错误=“找不到实时游戏”;
否则它将返回不同的信息,如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)
也许添加存储的json,它会更容易帮助..
但你应该做的是首先检查是否有值,让我们说:
if([[results4 valueForKey:@"homeshort"] objectAtIndex:i ])
存储之前。或者甚至更好,你可以检查错误:
if([[results4 valueForKey:@"error"] isEqualToString: ""No live games found" ])
{ return; }
然后回来。
希望这有帮助