使用iOS,如何检查URL是否为空

问题描述 投票:0回答:9

我正在加载 JSON,但我想检查 json 中的

"URL": "",
是否为空,有时 ID 为空,我该如何检查?

if(URL == HOW TO CHECK IF EMPTY?)
{

}
else
{

}

错误:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
ios cocoa-touch url
9个回答
6
投票

嗯,试试吧

if ([URL isEqualToString:@"The URL?"]) {

4
投票

如果 URL 对象是字符串,则可以使用其中之一,

if([string length] == 0) { //empty }

if([string isEqualToString:@""]) { // empty }

如果URL对象是NSURL,则可以使用:

if([[url absoluteString] isEqualToString:@""]) { //empty }

4
投票
if (URL ==  [NSNull null]) {
    //...
} else {
    //...
}

或者

if (URL == nil) {
    //...
} else {
    //...
}

或者检查 URL 的长度


2
投票

在处理 JSON 数据时,我往往非常小心。假设我有一个 JSON 反序列化为 NSDictionary。这样,我需要从字典中提取与键“URL”关联的字符串并将其转换为 NSURL。此外,我对 JSON 或字符串值不是 100% 有信心。

我会做这样的事情:

NSURL *URL = nil;
id URLObject = [JSON valueForKey:@"URL"];
if ([URLObject isKindOfClass:[NSString class]] && [URLObject length] > 0) {
    URLObject = [URLObject stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    URLObject = [URLObject stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    URL = [NSURL URLWithString:URLObject];
}

此后,URL 将具有 nil 或有效 URL。 -isKindOfClass:清除 NSDictionary、NSArray、NSNumber 或 NSNull 的值。 -length > 0 过滤掉空字符串(正如你所知,这可能会弄乱 NSURL)。解码然后重新编码 URL 转义的额外偏执可以处理部分编码的 URL。


2
投票
if (url.absoluteString.length==0)
{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error" message:@"Please enter a url" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
    [alert show];
}

1
投票

对于 Swift 5Swift 4 使用此

var UrlUploadVideo = NSURL()

if UrlUploadVideo.absoluteString == "" {
     // your code
}

0
投票

根据存储方式,您可能需要验证它是否为 null (

URL == nil
) 或者字符串是否为空。假设您的 URL 存储在 NSString 中,您会选择类似以下内容:

BOOL empty = URL == nil || [URL length] == 0;

0
投票

试试这个。这对我有用。

NSURL *url;
if ([url path])
{
    // url is not empty
}
else
{
    // url is empty
}

0
投票
guard let url = URL(string: urlStr) else { return }
© www.soinside.com 2019 - 2024. All rights reserved.