8

我正在加载 JSON,但我想检查"URL": "",json 中的是否为空,有时 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:
4

9 回答 9

6

嗯,试试

if ([URL isEqualToString:@"The URL?"]) {
于 2012-05-17T13:26:30.343 回答
4
if (URL ==  [NSNull null]) {
    //...
} else {
    //...
}

或者

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

或检查 URL 的长度

于 2012-05-17T13:08:45.550 回答
4

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

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

或者

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

如果 URL 对象是一个 NSURL,你可以使用:

if([[url absoluteString] isEqualToString:@""]) { //empty }
于 2012-05-17T13:10:08.187 回答
2

在处理 JSON 数据时,我往往会非常小心。假设我有一个反序列化为 NSDictionary 的 JSON。有了这个,我需要从字典中提取一个与键“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。

于 2012-05-17T14:26:40.210 回答
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];
}
于 2015-07-11T10:21:18.537 回答
0

根据它的存储方式,您可能需要验证它是否为 null ( URL == nil) 或字符串是否为空。假设您的 URL 存储在 NSString 中,您将使用以下内容:

BOOL empty = URL == nil || [URL length] == 0;
于 2012-05-17T13:10:26.220 回答
0

试试这个。它对我有用。

NSURL *url;
if ([url path])
{
    // url is not empty
}
else
{
    // url is empty
}
于 2014-12-18T10:32:02.113 回答
0

对于 swift 3 和 swift 4 使用这个

var UrlUploadVideo = NSURL()

if UrlUploadVideo.absoluteString == "" {
     // your code
}
于 2018-08-02T14:07:16.110 回答
0
guard let url = URL(string: urlStr) else { return }
于 2020-06-06T02:43:29.867 回答