为什么我的if语句没有解雇?

时间:2009-10-30 18:12:22

标签: iphone objective-c syntax-error

我有以下Objective-c函数

  - (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等于我的名字时触发if语句 - 非常令人兴奋。

if (aName == @"Toby")

我已经设置了警报,并且正在设置Value并将其设置为Toby,但If语句不执行else部分。我很遗憾,这显然很简单。

我正在学习Objective-C

1 个答案:

答案 0 :(得分:9)

if声明:

if (aName == @"Toby")

比较指针,而不是字符串。你想要:

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

这与普通C没有什么不同;您无法使用==来比较字符串。