2011-02-04 4 views
2

J'essaie d'obtenir une valeur de chemin à partir d'un tableau pour un NSURL pour définir une icône dans mon application. Je reçois unNSURL Exceptions

NSInvalidArgumentException ', raison:' - [__ NSArrayI length]: sélecteur non reconnu envoyé à l'instance 0x5622590.

Si j'utilise un NSLog je reçois le résultat attendu:

NSLog(@"%@",[[wforecast.wicons objectAtIndex:0]valueForKey:@"nodeContent"]); 

Ce qui me donne:

enter image description here

Im réglage de la valeur comme suit

NSURL *urlpath; 

NSString *urls = [[wforecast.wicons objectAtIndex:0] valueForKey:@"nodeContent"]; 

urlpath = [NSURL URLWithString:(NSString *)urls]; 

J'apprécie cela est une façon de faire les choses à long terme mais j'essayais de briser les composants individuels pour savoir ce qui n'allait pas mais je suis à perte!

+0

Quelle ligne de code provoque le crash? – deanWombourne

Répondre

6

Vous avez essentiellement le même problème que this other questioner had. Vous avez passé un objet qui n'est pas un NSString où vous devez passer un NSString. Utilisez le débogueur pour déterminer exactement où l'exception s'est produite.

Si vous n'avez pas fait cela, je ne serais pas si sûr que le code que vous avez montré est ce qui l'a causé; le débogueur vous dira où l'exception s'est produite sans aucun doute possible. Une fois que vous avez trouvé l'origine de l'exception, vous pouvez examiner l'objet que vous avez passé et revenir à l'endroit d'origine. Vous devez corriger la façon dont vous récupérez la chaîne ou comment vous l'avez stockée à l'endroit où vous l'obtenez.

+0

Ne retourne pas NIl – Coasty

+0

@ user596968: Cela était déjà en évidence dans le message d'exception. Le débogueur vous en dira plus. –