Suppression d'un Warning
fleurantin
Membre
Bonjour,
J'essaie d'éliminer un maximum de warning dans mon code.
J'en ai un qui résiste sans altérer le fonctionnement.
Sur le dernier paramètre du NSBeginAlertSheet, soit uneChaine j'obtiens en permanence le warning suivant : Format string is not a string literal (potentially insecure)
Y-a t'il moyen de l'encadrer avec une directive qui le supprimerait ? Et si oui, où pourrais-je trouver de la documentation sur ces directives ?
Merci d'avance,
J'essaie d'éliminer un maximum de warning dans mon code.
J'en ai un qui résiste sans altérer le fonctionnement.
Sur le dernier paramètre du NSBeginAlertSheet, soit uneChaine j'obtiens en permanence le warning suivant : Format string is not a string literal (potentially insecure)
Y-a t'il moyen de l'encadrer avec une directive qui le supprimerait ? Et si oui, où pourrais-je trouver de la documentation sur ces directives ?
Merci d'avance,
<br />
- (IBAction)revertFactorySettings:(id)sender{<br />
NSString *uneChaine=[self monNomAlerte2];<br />
NSBeginAlertSheet ([self monNomAlerte1], NSLocalizedString(@"NO",@"No"),NSLocalizedString(@"YES",@"Yes"),@"",[[maTable superview] window],self,@selector(sheetDidEnd:returnCode:contextInfo:),NULL,nil,uneChaine);<br />
[self modificationVue];<br />
}<br />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est comme si tu écrivais NSLog(uneChaine) au lieu de NSLog(@%@", uneChaine)
Si jamais ta variable "uneChaine" contient un "%@ ou %x" ou "%d" ou autre, il serait interprété comme un caractère de formattage et essaierait d'aller chercher un autre paramètre et va crasher. Donc ce n'est pas bon, il faut corriger ton code pour éviter ce risque.
Il faut donc que tu remplaces ton dernier paramètre de NSBeginAlertSheet non pas par "uneChaine", mais par le paramètre "%@ suivi du paramètre uneChaine" :