我有以下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
答案 0 :(得分:9)
此if
声明:
if (aName == @"Toby")
比较指针,而不是字符串。你想要:
if ([aName isEqualToString:@"Toby"])
这与普通C没有什么不同;您无法使用==
来比较字符串。