La diferencia es para los tipos abstractos y sus asociados dimensionados desde hardware. De una manera que ahora no tenemos que preocuparnos por el tamaño de un int o qué tan grande es su puntero en un hardware en particular.
“C” es malo en esto, solo indica que un largo es al menos tan grande como un int, que un int es el tamaño entero “natural” del hardware (lo que sea que eso signifique), que un int es al menos tan largo como un corto – a (gran desorden).
Esto parecía una buena idea en el momento en que provenía de Fortran, pero no envejeció bien.
- ¿Cosas como The Grid y RightClick.io están matando el desarrollo web?
- ¿Cuáles son los mejores materiales de estudio en Swift para un principiante en iOS?
- ¿Qué día actualiza iOS App Store la lista destacada?
- ¿Cómo distribuye una empresa una aplicación de iOS para las pruebas Beta?
- ¿Qué quiso decir Jason Prado exactamente cuando dijo "Xcode no puede manejar nuestra escala"?
Uno podría usar las definiciones POSIX, cosas como uint32_t, int16_t, etc. Pero esto tampoco aborda qué tan grande debe ser un puntero en un hardware en particular.
Entonces, si Apple define el tipo de retorno como un NSUInteger, simplemente lo usa y no necesita saber si tiene un tamaño de 16, 32 o 64 bits para su hardware en particular. (Elegí esos valores fuera del aire solo por un ejemplo).