Si j'ai une méthode comme ci-dessous:Méthode d'archivage explicite retournant si l'objet est nul?
-(BOOL)shouldResize {
return _view != nil;
}
où _view est un pointeur vers un objet, est explicite nul contrôle nécessaire/recommandé, ou est-il suffisant pour simplement faire:
-(BOOL)shouldResize {
return _view;
}
Je me demande si un comportement étrange peut apparaître dans la coulée du pointeur vers une BOOL, comme dans l'exemple ici: (je suppose que vous pouvez aussi faire return !!_view
, à droite) https://developer.apple.com/documentation/objectivec/bool?language=objc
FYI - Votre deuxième jeu de code est la raison pour laquelle vous ne devez jamais comparer directement une variable 'BOOL' avec' NO' ou 'YES'. Faites simplement 'if (someBool)' ou 'if' (! SomeBool)'. Utiliser 'if (someBool == YES)' ou 'if (someBool == NO)' ou similaire avec '! =' Peut échouer dans un bogue difficile à trouver. – rmaddy
Intéressant, merci pour le pourboire! Semble un peu cassé bien qu'un bug comme celui-là devrait se produire en premier lieu. – dobse
Quel bug? Le problème est seulement lorsque vous traitez BOOL comme zéro et non nul. "BOOL" ne devrait jamais être "NON" et "OUI", pas zéro et non nul. Le seul bug ici est votre 2ème exemple de code où vous essayez de traiter un pointeur d'objet comme un 'BOOL'. – rmaddy