-1

*私は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];

    }
}
4

1 に答える 1

1

文字列を==と比較しないでください。ポインタが比較されるため、同じではない可能性があります。iOS 5ではそうなる可能性があるので、機能しました。isEqual:またはisEqualToString:を使用する必要があります。

if ([cell.textLabel.text isEqualToString:@"Cairo"]) { // do stuff

また、UIに基づいて物事を想定することは一般的に悪い習慣です。モデルが必要であり、indexPathを使用して論理値を取得する必要があります。

于 2013-03-05T02:15:50.313 に答える