【问题标题】:If Statement, hide buttonIf 语句,隐藏按钮
【发布时间】:2014-10-16 17:03:22
【问题描述】:

我正在尝试评估字典中包含的特定 url 的字符串,然后如果该 url 是当前包含在“url”变量中的那个,则隐藏右栏按钮。使用 NSLogs,我发现有问题的 url 字符串被加载到“url”中,但 if 语句从未出现。我有点新手,希望能得到一些关于如何适当地构建它的反馈。谢谢一百万!

NSURL *url = [NSURL URLWithString:[self.webViewDict valueForKey:@"Url"]];
            NSLog(@"%@",url);

if ([url isEqual:@"URLGOESHERE"]){
    NSLog(@"If statement called");
    [self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor   clearColor]}
                                                                      forState:UIControlStateDisabled];
     self.navigationItem.rightBarButtonItem.enabled = NO;
}

NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView loadRequest:request];

【问题讨论】:

    标签: objective-c cocoa-touch if-statement ios7 nsurl


    【解决方案1】:

    问题是您将NSURL 对象与NSString 对象进行比较。当然,他们永远不会平等。你需要做这样的事情:

    if([[url absoluteString] isEqualToString:@"http://gacc.nifc.gov/rmcc/predictive/outlook/Rocky_Mountain_Area_Outlook2014.pdf"])
    {
    // equal!
    }
    

    【讨论】:

    • 这将是区分大小写的比较,您可以使用作为 NSString 一部分的 lowercaseString 或 caseInsensitiveCompare。永远不要假设字符串的大小写正确。
    【解决方案2】:

    您正在将 NSURL 与 NSString 进行比较...

    这一行:

    if ([url isEqual:@"URLGOESHERE"])
    

    您可能应该使用 [url absoluteString] 将两个值作为字符串进行比较

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-07
      • 2017-02-05
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多