如何在if语句中使用字符串?

时间:2012-08-10 14:14:26

标签: iphone objective-c string if-statement nsstring

我是objective-c的新手,我想知道如何获取NSString的stringValue,如果它等于照片,那么执行//something

这是我正在使用的代码,NSLog打印“照片”。

我正在为iPhone开发。

NSString *getPageType = [self.webView stringByEvaluatingJavaScriptFromString:
                                 @"document.getElementById('pageType').name"];

    NSLog(@"%@", getPageType);



    if (getPageType == @"photo")
    {
        [UIButton animateWithDuration:3 animations:^{
            downloadOverlay.alpha = 1;
            downloadOverlay.alpha = 0;
        }];

    }

5 个答案:

答案 0 :(得分:6)

if ([getPageType isEqualToString:@"photo"])

应该这样做。

答案 1 :(得分:4)

您应该使用:

if ([getPageType isEqualToString:@"photo"])

答案 2 :(得分:2)

getPageType == @"photo"比较内存地址(指针)。

[getPageType isEqualToString:@"photo"]做你真正想要的,我。即比较两个字符串的内容。

<强> in C Language

const char *capital = "NewYork";

if(capital == "NewYork") // address compare

if (strcmp(capital,"NewYork")==0) // string compare
   printf("equal");
else
   printf("different");

答案 3 :(得分:1)

我知道你已经得到了答案,但我只是想指出,如果你感觉特别慢,你也可以使用isEqual:

如果您使用isEqual:,则可以传递的不仅仅是字符串(例如NSDataNSArrayNSDictionary等)。

如果两个对象相等则返回YES,如果不相等则返回NO。这比仅比较字符串时使用isEqualToString:要慢。

答案 4 :(得分:0)

你可以使用

NSString *getPageType = [self.webView stringByEvaluatingJavaScriptFromString:
                                 @"document.getElementById('pageType').name"];

    NSLog(@"%@", getPageType);



        if ([getPageType isEqualToString:@"photo"])
    {
        [UIButton animateWithDuration:3 animations:^{
            downloadOverlay.alpha = 1;
            downloadOverlay.alpha = 0;
        }];

    }