Ce n'est pas une réponse "simple" (puisque la solution est juste idiote), c'est plutôt une suggestion sur les méthodes de travail, c'est pourquoi je poste une réponse.
Il n'est pas toujours bon de placer différentes lignes sur une seule ligne. Surtout quand vous rencontrez un problème dans votre cas. Il est préférable de diviser chaque commande, une par une, et de déboguer, vérifiez la valeur de chacune d'elles.
Dans votre cas:
bks.quantity = [NSNumber numberWithInteger: [[arrayOfSplitStrings[i] objectAtIndex:[[sd.dictionaryOfUserIndexes objectForKey: @"29"] intValue]] intValue]-1];
==>
NSInteger userOfIndexes = [[sd.dictionaryOfUserIndexes objectForKey: @"29"] intValue];
NSLog(@"userOfIndexes: %d", userOfIndexes);
NSInteger n = [arrayOfSplitStrings[i] objectAtIndex:userOfIndexes] intValue];
NSLog(@"n: %d", n);
bks.quantity = [NSNumberWithInteger:n-1];
j'ajouté NSLog()
, mais les valeurs pourraient être vérifier avec des points d'arrêt et débogueur. Je pourrais avoir aussi ajouter un contrôle sur arrayOfSplitStrings
avec
NSArray *splitStrings = arrayOfSplitString[i];
NSLog(@"splitStrings: %@", splitStrings);
et remplacer n
avec:
NSInteger n = [splitStrings objectAtIndex:userOfIndexes] intValue];
De cette façon, vous auriez vérifier que apparemment (selon votre commentaire), votre question a été devaient .? mettre le » -1
NSInteger n = [[arrayOfSplitStrings[i] objectAtIndex: userIndex-1] intValue];
Pourriez-vous le faire morceau par morceau au lieu de le faire en une seule ligne puis vérifiez chaque valeur:' NSInteger userIndex = [[sd.dictionaryOfUserIndexes objectForKe y: @ "29"] intValue]; NSInteger n = [[arrayOfSplitStrings [i] objetAtIndex: userIndex] intValue]; 'Puis' bks.quantity = [NSnumber nombreWithInteger: n-1]; '? – Larme
Une modification mineure à votre code: NSInteger userIndex = [[sd.dictionaryOfUserIndexes objectForKey: @ "29"] intValue]; NSInteger n = [[arrayOfSplitStrings [i] objetAtIndex: userIndex-1] intValue]; bks.quantity = [NSnumber numberWithInteger: n]; } Veuillez réécrire votre commentaire comme réponse afin que je puisse vous donner des points et fermer la question. Merci beaucoup ... Je n'aurais jamais pensé à le faire de cette façon ... SD – SpokaneDude