这是我的代码:
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;
}
但它永远不会返回第一个语句只返回第二个语句,甚至是atim值为0。
日志值:
MyAudioRecorder[2484:10703] value of atime is:0
也试图把0而不是@“0”,仍然不起作用。
答案 0 :(得分:4)
尝试以下方法:
if ([atime isEqualToString : @" "]) {}
答案 1 :(得分:4)
if (atime==@"0")
将atime
的内存地址与常量字符串@"0"
的地址进行比较。
if ([atime isEqualToString:@"0"])
比较存储在两个内存位置的值。
根据您的要求,您可能希望比较值而不是内存位置。所以去第二个。
答案 2 :(得分:1)
isEqualToString: - >
- (BOOL)isEqualToString:(NSString *)aString
返回一个布尔值,该值使用文字基于Unicode的比较来指示给定字符串是否等于接收者。
讨论 - >当此方法比较两个字符串时,如果单个Unicodes相同,则字符串相等
有关详情,您可以访问apple NSString Class Reference
if([atime isEqualToString:@"0"])
{
}
else
{
}