* 我在IOS5上尝试此代码工作正常,但是当我尝试IOS6时什么都不做 我无法重现这个问题...... 任何身体都可以帮助我它让我疯狂...... *
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell =[tableView cellForRowAtIndexPath:indexPath];
if (cell.textLabel.text== @"Cairo") {
//Cairo
center.latitude=29.333983;
center.longitude=30.453069;
span.latitudeDelta=1.400686;
span.longitudeDelta= 2.705383;
region.center=center;
region.span=span;
[_mapView setRegion:region animated:NO];
}
else if(cell.textLabel.text== @"Alexandria")
{
// Alexandria
center.latitude=31.200092;
center.longitude=29.918739;
span.latitudeDelta=0.324794;
span.longitudeDelta=0.676346;
region.center=center;
region.span=span;
[_mapView setRegion:region animated:NO];
}
}
答案 0 :(得分:1)
你不应该将字符串与==进行比较,因为它会比较指针,这些指针可能不相同。在iOS 5上它可能是,所以它工作。您需要使用isEqual:或isEqualToString:
if ([cell.textLabel.text isEqualToString:@"Cairo"]) { // do stuff
此外,基于UI假设事物通常是一种不好的做法。您应该有一个模型,并使用indexPath来获取逻辑值。