Je continue à obtenir des erreurs Clang sur le type de code suivant et je n'arrive pas à comprendre pourquoi elles sont erronées ou comment les résoudre à la satisfaction de Clang :
+ (NSString *)checkForLength: (NSString *)theString error: (NSError **)error {
BOOL hasLength = ([theString length] > 0);
if (hasLength) return theString;
else {
*error = [NSError errorWithDomain:@"ErrorDomain" code:hasLength userInfo:nil];
return nil;
}
}
En laissant de côté la nature totalement artificielle de l'exemple (auquel Clang s'est opposé, il est donc suffisamment illustratif), Clang s'oppose à la ligne d'affectation des erreurs avec l'objection suivante :
Déférence nulle potentielle. Selon les normes de codage de la section "Creating and Returning
NSError
Objects", le paramètre "error" peut être nul.
J'aime avoir un rapport Clang impeccable. J'ai lu le document cité et je ne vois pas comment faire ce qui est attendu ; j'ai vérifié certaines bibliothèques Cocoa open-source et cela semble être un idiome commun. Avez-vous des idées ?