【问题标题】:How to check if NSURL contains NSString null?如何检查 NSURL 是否包含 NSString null?
【发布时间】:2012-09-29 17:11:46
【问题描述】:

我使用以下代码从 NSDictionary 中获取 NSString,然后将其转换为 NSUrl:

NSURL * url = [NSURL URLWithString:[self.item objectForKey:@"website"]];

NSDictionary self.item 来自网络服务器,并使用 JSON 数据正确填充。 NSDictionary 中的所有其他对象都可以正常工作。

但有时 Web 服务器会传递一个带有文本“null”的网站 url,因为该对象没有填写任何网站。通过调试,我了解到 NSURL 对象可以包含一个带有文本“null”的 url。但是我该如何防止这种情况,或者我如何编写一个 if 语句来检查呢?

我尝试了以下方法:

NSString * niks = [eventUrl absoluteString];
if(niks == @"null")
{
    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Event" message:@"Event heeft geen website" delegate:nil cancelButtonTitle:@"Oke" otherButtonTitles:@"Oke", nil];
    [message show];
}
else
{
    [webView loadRequest:[NSURLRequest requestWithURL:eventUrl]];
    NSLog(@"%@",eventUrl);
}

但这不起作用,它总是将url直接传递给webview。有人可以为我指明正确的方向吗?

【问题讨论】:

    标签: objective-c ios nsstring null nsurl


    【解决方案1】:

    你的比较;

    if(niks == @"null")
    

    仅比较指针是否相等(即如果两者是相同的字符串对象实例)。由于一个是常量,另一个是从服务器获取的 JSON 动态创建的,因此不太可能。

    要比较两个字符串的内容,你应该这样做;

    if([niks isEqualToString:@"null"])
    

    求链接,here is the [NSString isEqualToString:] documentation

    【讨论】:

      【解决方案2】:

      要进行字符串比较,您需要进行 [niks isEqualToString:@"null"],这就是第一个条件被破坏的原因。 你也可以使用 [niks RangeOfString:@"null"];

      【讨论】:

        【解决方案3】:

        我相信你可以做到:

        id str = [self.item objectForKey:@"website"];
        if([str isMemberOfClass[NSNull class]]) { 
            ... its null
        }
        

        JSON 转换器都将 null 更改为 NSNull 对象(根据我的经验)。

        【讨论】:

          【解决方案4】:

          我不是 100% 清楚我的记忆,但我遇到了 [NSDictionary objectForKey:] 实际上返回 NSNull 类实例而不是“null”字符串的情况。

          如果是这种情况,您可以使用isKindOfClass 方法检查[self.item objectForKey:@"website"] 的类。

          【讨论】:

            猜你喜欢
            • 2011-10-02
            • 2011-06-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-08-14
            • 1970-01-01
            相关资源
            最近更新 更多