Comstackz NSLog avec unsigned int et unsigned long sur iOS et OSX sans avertissement

Sur iOS NSUInteger est un unsigned int , sur OSX c'est un unsigned long . Comment puis-je faire une déclaration d'printing comme

  NSLog(@"Array has %d elements.",[array count]); 

comstackr sur les deux plates-forms sans avertissement? Je peux bien sûr utiliser une construction #ifdef #else #endif mais cela appenda 4 lignes de code. Je pourrais également convertir la valeur de return en entier non signé. Y a-t-il une solution plus courte?

Que diriez-vous d'un casting au plus grand des deux?

 NSLog(@"Array has %ld elements.",(unsigned long)[array count]); 

Aucun avertissement dans iOS, et je pense que c'est un no-op sous OSX.

Que diriez-vous d'un casting au plus grand des deux?

 NSLog(@"Array has %ld elements.",(unsigned long)[array count]); No warning in iOS, and I think it's a no-op in OSX.