如果声明无法正常工作

时间:2012-12-14 08:30:32

标签: iphone objective-c ios if-statement

这是我的代码:

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”,仍然不起作用。

3 个答案:

答案 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
{
}