2009-10-30 2 views
0

У меня есть следующие Objective-C ФункцияПочему мое утверждение if не срабатывает?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 


NSUInteger section = [indexPath section]; 
NSUInteger row = [indexPath row]; 

NSString *key = [keys objectAtIndex:section]; 
NSArray *nameSection = [mysearchdata objectForKey:key]; 

static NSString *SectionsTableID = @"SectionsTableID"; 
static NSString *TobyCellID = @"TobyCellID"; 

NSString *aName = [nameSection objectAtIndex:row]; 

if (aName == @"Toby") 
{ 
    TobyCell *cell = [tableView dequeueReusableCellWithIdentifier:TobyCellID];  
    if (cell == nil) 
    {  
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TobyCell" owner:self options:nil]; 
     for (id oneObject in nib) 
      if ([oneObject isKindOfClass:[TobyCell class]]) 
       cell = (TobyCell *)oneObject; 
    }          
    cell.lblName.text = [nameSection objectAtIndex:row]; 
    return cell;   
} 
else 
{ 
//standard cell loading code 
} 
} 

Все, что я хочу, это если заявление на огонь, когда Row равно My Name - очень интересно.

if (aName == @"Toby") 

Я поставил в боевой готовности и стоимость создается и его время устанавливается в Toby но заявление Если не выполняется только еще часть. Очевидно, что-то простое, что мне не хватает.

Я учусь Objective-C

ответ

9

Этот if заявление:

if (aName == @"Toby") 

сравнивает указатели, а не строк. Вы хотите:

if ([aName isEqualToString:@"Toby"]) 

Это не очень отличается от простого C; вы не можете использовать == для сравнения строк.

+0

Thankyou. Так близко еще до сих пор :) –

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