¿Cuál es la diferencia entre NSInteger e int?

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.

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).

NSInteger es una abstracción del tamaño de un entero y significa diferentes cosas en diferentes arquitecturas. Probablemente debería usar NSInteger (incluso en iOS) siempre que pueda, a menos que realmente necesite usar un int por cualquier razón. De lo contrario, tal vez algún día en el futuro descubra que necesitará convertir muchas entradas a NSIntegers de todos modos.

More Interesting

¿Existe un SDK para iOS que permita que un usuario se conecte a otro y que ese chat de video se transmita a una audiencia?

¿Existen herramientas de encuestas en línea que permitan la comparación de imagen a imagen para encuestas?

¿Cuáles son concretamente los pasos clave más importantes para construir una aplicación de iOS que resulte en un negocio exitoso con> 1M $ de ingresos en 18 meses?

C # (lenguaje de programación): ¿Puedo crear aplicaciones de Apple / Android usando C #?

¿Cómo se despacha el trabajo en un equipo de desarrollo de aplicaciones iOS?

Cómo asegurar los derechos de propietario de una aplicación cuando le pido a un profesional independiente que la desarrolle

¿Cuáles son las diferencias entre Android e iOS?

¿Cómo se compara Chromebook con productos similares de Apple en términos de diseño de software intuitivo?

¿Qué idiomas debo aprender para comenzar mi carrera como desarrollador de iOS?

¿Pueden los teléfonos inteligentes y las tabletas matar el desarrollo web en un futuro próximo?

¿Cuáles son los mejores recursos para mejorar la habilidad de desarrollo de ios con 1 año de experiencia?

¿Por qué Apple introduciría nuevos lenguajes de programación (por ejemplo, Swift) en lugar de adoptar uno existente?

¿Cuáles son los idiomas comunes utilizados para el desarrollo de iPhone?

¿Qué debería elegir un desarrollador de iOS para un aprendizaje adicional: desarrollo de juegos Unity 3D o desarrollo de aplicaciones híbridas?

¿Apple ha proporcionado alguna guía para el "Tiempo de carga" de una aplicación?