Я пытаюсь получить информацию о погоде для приложения iPhone. Если я введу 5-значный почтовый индекс, код работает. Однако я хочу убедиться, что если пользователь не введет действительный город или почтовый индекс, это не приведет к сбою. Проблема заключается в том, что в Google Weather API данные XML читают «городские данные», когда вводится правильное место, и «данные проблемной причины», когда это недопустимое место. Пожалуйста, помогите!
-(IBAction) getlocation {
NSString *locationentered = location.text;
if ([locationentered isEqualToString: @""]) {
locationlabel.text = @"Please Enter a Location";
}
else {
NSString * locationen = locationentered;
NSString * address = @"http://www.google.com/ig/api?weather=";
NSString * request = [NSString stringWithFormat:@"%@%@",address,locationen];
NSURL * URL = [NSURL URLWithString:request];
NSError * error;
NSString* XML = [NSString stringWithContentsOfURL:URL encoding:NSASCIIStringEncoding error:&error];
NSString * temptoday = [[[[XML componentsSeparatedByString:@"city data=\""] objectAtIndex:1] componentsSeparatedByString:@"\""] objectAtIndex:0];
NSString * errorlocation = [[[[XML componentsSeparatedByString:@"problem_cause data=\""] objectAtIndex:1] componentsSeparatedByString:@"\""] objectAtIndex:0];
if ([errorlocation isEqualToString: @""]) {
locationlabel.text = @"Invalid Location";
}
if ([temptoday isEqualToString:@"(null)"]) {
locationlabel.text = @"Location present";
}
else {
locationlabel.text = temptoday;
}
}
}