如果陈述无法正常工作
这是我的代码:
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 { }