Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 目标C:比较正常字符串和NSMutableArray中找到的字符串_Iphone_Objective C_Cocoa Touch_Nsmutablearray_Nsarray - Fatal编程技术网

Iphone 目标C:比较正常字符串和NSMutableArray中找到的字符串

Iphone 目标C:比较正常字符串和NSMutableArray中找到的字符串,iphone,objective-c,cocoa-touch,nsmutablearray,nsarray,Iphone,Objective C,Cocoa Touch,Nsmutablearray,Nsarray,我对字符串感到困惑(恐怕这是初学者的问题): 我有一个名为Notebook的NSMutableArray。在索引位置1,我有一个对象,我认为它是一个字符串。至少我把它放在数组中,如下所示: [NoteBook replaceObjectAtIndex:1 withObject:@"x-x-x-x"]; 到目前为止还不错。如果我把它放到UILabel中,它会在我的屏幕上显示x-x-x-x。当我试图将这个字符串与其他字符串进行比较时,噩梦就开始了。让我们考虑一下,我不想在我的屏幕上显示X-X-X-

我对字符串感到困惑(恐怕这是初学者的问题):

我有一个名为Notebook的NSMutableArray。在索引位置1,我有一个对象,我认为它是一个字符串。至少我把它放在数组中,如下所示:

[NoteBook replaceObjectAtIndex:1 withObject:@"x-x-x-x"];
到目前为止还不错。如果我把它放到UILabel中,它会在我的屏幕上显示x-x-x-x。当我试图将这个字符串与其他字符串进行比较时,噩梦就开始了。让我们考虑一下,我不想在我的屏幕上显示X-X-X-X字符串,而只是要有一个空白。所以我想我可以通过编码实现这一点:

    NSString *tempDateString;
tempDateString = [NSString stringWithFormat:@"%@",[NoteBook objectAtIndex:1]];

if (tempDateString == @"x-x-x-x") {

        UISampleLabel.text = @"";

    }
出于某种原因,这不起作用,即即使数组位置1处的字符串为“x-x-x-x”,它也不会将我的UISampleLabel设置为“无”

我想我对@“标记感到困惑。我什么时候真的需要它们?为什么我不能简单地编写
tempDateString=[NoteBook objectAtIndex:1]

任何帮助和建议都将不胜感激

您需要将字符串与isEqualToString进行比较:

if ([tempDateString isEqualToString:@"x-x-x-x"]) {
  UISampleLabel.text = @"";
}

您需要将字符串与isEqualToString进行比较:

if ([tempDateString isEqualToString:@"x-x-x-x"]) {
  UISampleLabel.text = @"";
}

除了已经回答的问题之外:

为什么我不能简单地编写
tempDateString=[NoteBook objectAtIndex:1]

你可以。为什么你认为你不能?

除了已经回答的问题之外:

为什么我不能简单地编写
tempDateString=[NoteBook objectAtIndex:1]

你可以。你为什么认为你不能呢?

你可以。但是请记住,从objectAtIndex:1获得的实例是一个autorelease对象。如果要在方法之外使用它,则必须保留它。;-)谢谢,但是从
+stringWithFormat:
返回的实例也是如此。此外,我不是在问我自己的利益——我是在问n.evermind,为什么他认为上述要求
+stringWithFormat:
。他的回答可能揭示了一个我们可以帮助澄清的误解。谢谢你的评论。实际上,我对"""这件事还很困惑。我想我需要这个来表明我们正在处理一个字符串,不是吗?如果我用stringWithFormat声明某个东西与不使用stringWithFormat声明某个东西有区别吗?不,最终结果没有区别-无论哪种方式,它都是一个string对象@“”只是一个方便的快捷方式,可以让您在代码中声明文本字符串值
+stringWithFormat:
在您希望将一堆内容格式化为字符串时非常有用,如在
someString=[NSString stringWithFormat:@“This:%d That:%d The other:%@”、This、That、theOther]
中。请注意,使用@“”创建的格式字符串与其他任何格式字符串一样,只是一个NSString实例。您可以。但是请记住,从objectAtIndex:1获得的实例是一个autorelease对象。如果要在方法之外使用它,则必须保留它。;-)谢谢,但是从
+stringWithFormat:
返回的实例也是如此。此外,我不是在问我自己的利益——我是在问n.evermind,为什么他认为上述要求
+stringWithFormat:
。他的回答可能揭示了一个我们可以帮助澄清的误解。谢谢你的评论。实际上,我对"""这件事还很困惑。我想我需要这个来表明我们正在处理一个字符串,不是吗?如果我用stringWithFormat声明某个东西与不使用stringWithFormat声明某个东西有区别吗?不,最终结果没有区别-无论哪种方式,它都是一个string对象@“”只是一个方便的快捷方式,可以让您在代码中声明文本字符串值
+stringWithFormat:
在您希望将一堆内容格式化为字符串时非常有用,如在
someString=[NSString stringWithFormat:@“This:%d That:%d The other:%@”、This、That、theOther]
中。请注意,使用@“”创建的格式字符串与其他任何字符串一样,只是一个NSString实例。