2012-05-17 15 views
6

Załaduję JSON, ale chcę sprawdzić "URL": "", w json jest pusty czasami ID jest pusty, jak mogę sprawdzić?W iOS, jak sprawdzić, czy adres URL jest pusty

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

} 
else 
{ 

} 

Błąd:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array' 
*** First throw call stack: 
+1

Czy to już analizowany? Czy adres URL to NSURL lub NSString? –

+0

URL to adres URL. – Jones

+1

Tak, ale jaki to jest obiekt? Z zaakceptowanej odpowiedzi wygląda na to, że był to NSString –

Odpowiedz

5

Hmm, spróbuj

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

. Wierzę, że Jones pyta, jak sprawdzić pustą wartość, pokazaną jako "", w słowniku "URL": "", –

3
if (URL == [NSNull null]) { 
    //... 
} else { 
    //... 
} 

Albo

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

lub skontaktuj się z długością URL

2

Jeśli obiekt URL jest ciągiem znaków, można użyć jednej,

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

lub

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

Jeśli obiekt URL jest bibliotece NSURL, można użyć:

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

W zależności od tego, jak jest on przechowywany, może być konieczne w celu sprawdzenia, czy jest zerowa (URL == nil) lub jeśli ciąg znaków jest pusty. Zakładając, że adres URL jest przechowywany w NSString, chcesz iść na coś takiego:

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

Podczas pracy z danymi JSON I wydają się być bardzo ostrożny. Powiedzmy, że mam JSON przekształcone do postaci NSDictionary. W tym celu muszę wyciągnąć ciąg ze słowa kluczowego "URL" ze słownika i przekształcić go w NSURL. Ponadto nie jestem w 100% pewny wartości JSON ani wartości ciągu.

chciałbym zrobić coś takiego:

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]; 
} 

po tym, URL będzie mieć albo zero lub ważnego adresu URL. -isKindOfClass: wyodrębnia wartość będącą NSDictionary, NSArray, NSNumber lub NSNull. -Length> 0 odfiltrowuje pusty ciąg znaków (który, jak wiesz, może zepsuć NSURL). Dodatkowa paranoja dekodowania, a następnie ponowne kodowanie adresów URL obsługuje częściowo zakodowane adresy URL.

0

Spróbuj tego. To zadziałało dla mnie.

NSURL *url; 
if ([url path]) 
{ 
    // url is not empty 
} 
else 
{ 
    // url is empty 
} 
0
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]; 
} 
Powiązane problemy