Je crée cette application mais je ne sais pas comment gérer l'erreur lorsqu'il n'y a pas de valeur pour une entrée donnée dans le NSDictionary. Voici le code que j'ai actuellement:Gestion des erreurs NSDictionary
NSDictionary *entry = [self entries][indexPath.row];
NSDictionary *text = [self entries][indexPath.row];
NSString *user = entry[@"user"][@"full_name"];
NSString *caption = text[@"caption"][@"text"];
if (caption != nil && entry != [NSNull null] && text != nil && caption != [NSNull null]) {
RNBlurModalView *modal = [[RNBlurModalView alloc] initWithViewController:self title:user message:caption];
[modal show];
}
Voici la réponse d'erreur que je reçois quand je tape sur une cellule sans aucune légende:
2013-08-08 02:36:57.871 Floadt[5566:c07] -[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0x310b678
2013-08-08 02:36:57.872 Floadt[5566:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0x310b678'
*** First throw call stack:
(0x2fda012 0x260be7e 0x30654bd 0x2fc9bbc 0x2fc994e 0x5606b 0x1c7a42f 0x1c8c182 0x1c8c394 0x261f705 0x188693c 0x18869ac 0x261f705 0x188693c 0x18869ac 0x1a401d3 0x2fa2afe 0x2fa2a3d 0x2f807c2 0x2f7ff44 0x2f7fe1b 0x2bb77e3 0x2bb7668 0x1778ffc 0x2d2d 0x2c55)
libc++abi.dylib: terminate called throwing an exception
pouvez-vous la structure de votre dictionnaire? –
Superflue ... Tout est superflu dans votre vérification d'erreur, Objective-C n'est pas Java, vous n'avez pas besoin de vérifier «nil». Vous avez omis ** l'essence, ** cependant: 'if ([entry isKindOfClass: [classe NSDictionary]]' 'et' if ([text isKindOfClass: [classe NSDictionary]]) ' –
où ces lignes iraient-elles avec mon code? above @ H2CO3 – Prad