2012-05-17 16 views
6

Sto caricando un JSON ma voglio controllare lo "URL": "", nel json è vuoto a volte l'ID è vuoto come posso controllare?Con iOS, come verificare se l'URL è vuoto

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

} 
else 
{ 

} 

Errore:

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

E 'già analizzato? L'URL è NSURL o NSString? –

+0

URL è un URL. – Jones

+1

Sì, ma che tipo di oggetto è? Dalla risposta accettata sembra che fosse una NSString –

risposta

5

Hmm, provare

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

Credo che Jones stia chiedendo come controllare il valore vuoto, mostrato come "", nel dizionario "URL": "", –

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

O

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

o controllare con lunghezza dell'URL

2

Se l'oggetto URL è una stringa, è possibile utilizzare,

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

o

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

Se l'oggetto URL è un NSURL, è possibile utilizzare:

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

A seconda di come viene memorizzato, potrebbe essere necessario verificare se è null (URL == nil) o se la stringa è vuota. Supponendo che l'URL viene memorizzato in un NSString, si dovrebbe andare per qualcosa di simile:

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

Quando si lavora con i dati JSON tendo ad essere molto attenti. Diciamo che ho un JSON deserializzato in un NSDictionary. Con ciò, ho bisogno di estrarre una stringa associata alla chiave "URL" dal dizionario e trasformarla in un NSURL. Inoltre, non sono sicuro al 100% nel JSON o nel valore stringa.

vorrei fare qualcosa di simile:

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

Dopo questo, URL avrà o un nullo o un URL valido. -isKindOfClass: elimina il valore come NSDictionary, NSArray, NSNumber o NSNull. -length> 0 filtra la stringa vuota (che, come sai, può rovinare un NSURL). L'ulteriore paranoia della decodifica, quindi la ricodifica degli URL di escape gestisce gli URL parzialmente codificati.

0

Prova questo. Ha funzionato per me.

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