Je pense que, dans la plupart des classes, si la valeur de retour de [super init] est nulle, et vous cochez la case, tel que recommandé par la norme de pratiques, puis un retour prématuré si nul, fondamentalement, votre application est encore de ne pas fonctionner correctement.
Si vous pensez à ce sujet, même si celui si (auto != néant) vérifier est là, pour le bon fonctionnement de votre classe, 99,99% du temps que vous ne besoin de soi pour être non-nulle.
Maintenant, supposons que, pour quelque raison que ce soit, [super init] n'a retourner nil, fondamentalement votre chèque à l'encontre de néant est fondamentalement renvoyer la balle jusqu'à l'appelant de votre classe, où il échouerait probablement de toute façon, puisqu'il sera naturellement supposer que l'appel a été couronnée de succès.
Fondamentalement, ce que je veux en venir c'est que 99,99% du temps, le si (auto != néant) ne pas acheter quoi que ce soit en termes de plus grande robustesse, puisque vous êtes juste en passant la balle à votre invocateur. Pour vraiment être en mesure de gérer ce robuste, vous avez réellement besoin de mettre des contrôles dans l'ensemble de votre appel hiérarchie. Et même alors, la seule chose qu'elle allait acheter pour vous est que votre application manquerait un peu plus proprement/robuste. Mais il serait encore échouer.
Si une bibliothèque de classe arbitrairement décidé de retourner nil comme un résultat de [super init], vous êtes assez bien f***ed de toute façon, et c'est plus d'une indication que l'auteur de la bibliothèque de la classe fait une erreur de mise en œuvre.
Je pense que c'est plus un héritage de codage suggestion, lorsque des applications couru beaucoup, beaucoup plus de mémoire limitée.
Mais pour C niveau code, je serais toujours vérifier la valeur de retour de malloc() à l'encontre d'un pointeur NULL. Attendu que, pour Objective-C, jusqu'à ce que je trouve les preuves du contraire, je pense que je vais généralement sauter le si (auto != néant) vérifie. Pourquoi cette différence ?
Parce que, à la C et la fonction malloc niveaux, dans certains cas, vous pouvez récupérer en partie. Alors que je pense en Objective-C, dans 99,99% des cas, si [super init] ne retourner nil, vous êtes essentiellement en f***ed, même si vous essayez de le manipuler. Vous pourriez tout aussi bien laisser l'application crash et traiter le lendemain.