如果陈述无法正常工作

这是我的代码:

NSString * atime = [NSString stringWithFormat:@"%@",[theDataObject.minuteArray objectAtIndex:indexPath.row]]; NSLog(@"value of atime is:%@",atime); if (atime==@"0") { NSString * timeStr = [NSString stringWithFormat:@"%@s",[theDataObject.secondArray objectAtIndex:indexPath.row]]; cell.timeLabel.text = timeStr; } else { NSString * timeStr = [NSString stringWithFormat:@"%@m%@s",[theDataObject.minuteArray objectAtIndex:indexPath.row],[theDataObject.secondArray objectAtIndex:indexPath.row]]; cell.timeLabel.text = timeStr; } 

但它从来没有返回第一个语句只返回第二个语句,甚至是最终值是0。

日志值:

 MyAudioRecorder[2484:10703] value of atime is:0 

也试图把0而不是@“0”,仍然不起作用。

 if (atime==@"0") 

比较atime内存地址和常量string@"0"的地址。

 if ([atime isEqualToString:@"0"]) 

比较存储在两个存储单元中的

根据您的要求,您可以看到您要比较的值不是内存位置。 所以去第二个。

尝试以下操作:

 if ([atime isEqualToString : @" "]) {} 

isEqualToString: – >

 - (BOOL)isEqualToString:(NSString *)aString 

返回一个布尔值,该值指示给定的string是否与使用基于Unicode的基于文字的比较的接收方相等

讨论 – >当这个方法比较两个string时,如果单个Unicode是相同的,那么string是相等的

更多你可以访问苹果NSString类参考

 if([atime isEqualToString:@"0"]) { } else { }