2013-03-05 10 views
-1

* я попробовать этот код на IOS5 работает нормально, но когда я пытаюсь на iOS6 ничего не делать я не в состоянии воспроизвести проблему ... Может ли тело помочь мне это сводишь меня с ума .... *UITableView клетки при выборе ничего не произошло в iPhone SDK

 - (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]; 

    } 
} 

ответ

1

Вы не должны сравнивать строки с ==, как он будет сравнивать указатели, которые не могут быть одинаковыми. На iOS 5 это может быть, так что это сработало. Вы должны использовать IsEqual: или isEqualToString:

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

Кроме того, это вообще плохая практика, чтобы предполагать вещи, основанные на пользовательском интерфейсе. У вас должна быть модель и используйте indexPath для получения логического значения.

Смежные вопросы