2010-11-24 6 views
1

Pour AVAudioPlayer, quand je initWithContentsOfURL:error: si je passe nul cela ne fonctionne pas, mais si je passe NULL c'est le cas. Et dans la documentation, il dit spécifiquement de passer NULL. Pourquoi est-ce?Pourquoi NULL obtient un résultat différent de zéro?

+1

ne fonctionne pas =? – kennytm

+0

'nil' devrait fonctionner. Si ce n'est pas le cas, c'est peut-être parce qu'il s'agit d'une erreur «NSError **» au lieu d'une erreur «NSError *». Mais 'nil' devrait toujours fonctionner. –

+0

J'imagine que vous obtiendriez un avertissement, mais aucune erreur, pour passer nil au lieu de NULL. Ils sont tous les deux 0, après tout. –

Répondre

0

La raison en est parce que nul est habituellement utilisé pour un type d'objet Objective-C, tandis que NULL est utilisé pour les pointeurs de style c

0

Je soupçonne autre chose qui se passe. Si vous vérifiez la définition de zéro, c'est la même chose que NULL:

#ifndef nil 
#define nil NULL 
#endif /* ! nil */ 
Questions connexes