-4

这是我的代码:

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",还是不行。

4

3 回答 3

4

尝试以下操作:

if ([atime isEqualToString : @" "]) {}
于 2012-12-14T08:32:13.137 回答
4
if (atime==@"0")

将 的内存地址atime与常量字符串的地址进行比较@"0"

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

比较存储在两个内存位置中的值。

从您的要求可以看出,您想要比较的不是内存位置的值。所以去第二个。

于 2012-12-14T08:41:49.277 回答
1

isEqualToString: ->

- (BOOL)isEqualToString:(NSString *)aString

返回一个布尔值,该值指示给定字符串是否等于使用基于 Unicode 的文字比较的接收者。

讨论-> 当此方法比较两个字符串时,如果各个 Unicode 相同,则字符串相等

有关更多信息,您可以访问苹果 NSString 类参考

if([atime isEqualToString:@"0"])
{
}
else
{
}
于 2012-12-14T08:33:29.060 回答