Dans l'en-tête, il est défini comme:Puis-je stocker en toute sécurité UInt32 sur NSUInteger?
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
donc fait un ajustement UInt32 sans problème dans un NSUInteger (un entier non signé)? Où est la différence entre UInt32 et unsigned int?
Et je suppose qu'un long non signé est plus grand qu'un entier non signé?
Cela échouera sur les plates-formes 64 bits, où 'sizeof (NSUInteger)' retourne 8 et 'sizeof (UInt32) 'renvoie 4. –
Donc, vous savez _when_ NSUInteger et UInt32 ne peuvent pas être traités de manière égale. – ohho