2011-05-03 10 views
16

Si NSInteger es lo mismo que un habitual int entonces ¿por qué existe y cuál es su propósito en ser llamado NSInteger?¿Por qué hay un NSInteger?

Soy nuevo en la programación de Mac OS X y vamos a tener un informe para esto.

+0

Gracias por resolver esta pregunta, @Tom Duckering! –

Respuesta

22

Se trata de una arquitectura de seguridad (64 vs 32 bits) de tipo para apoyar diferentes plataformas e implementaciones de C

Apple recomienda que utilice NSInteger sobre los tipos normales de todos modos, quiero suponer para la portabilidad!

Usted puede leer más en este Foundation Types Reference.

Descripción básica:

Cuando la construcción de aplicaciones de 32 bits, NSInteger es un número entero de 32 bits. Una aplicación de de 64 bits trata a NSInteger como , un entero de 64 bits.

+0

gracias amigo, realmente útil: D – bluezald

2

Aparte de la typedef ser diferente en diferentes sistemas (long en sistemas de 64 bits, int en 32 bits), no hay mucho de una razón.

Podría decirse que da la impresión de que un NSInteger es un objeto, cuando no lo es.

+1

sí, en realidad me confunde con las otras NS Clases – bluezald

1

A NSInteger será de 4 bytes en una máquina de 32 bits y 8 en un 64-bit.