Vincent Bacalso
Vincent Bacalso

Reputation: 2151

Why is there an NSInteger?

If NSInteger is just like a regular int then why does it exist and what is its purpose in being called NSInteger?

I'm new to Mac OS X programming and we'll be having a report for this.

Upvotes: 16

Views: 1478

Answers (3)

Nyx0uf
Nyx0uf

Reputation: 4649

A NSInteger will be 4 bytes on a 32-bit machine and 8 on a 64-bit.

Upvotes: 1

Wooble
Wooble

Reputation: 89997

Other than the typedef being different on different systems (long on 64-bit systems, int on 32-bit), there isn't much of a reason.

Arguably, it gives the impression that an NSInteger is an object, when it's not.

Upvotes: 2

Rudi Visser
Rudi Visser

Reputation: 21989

It's an architecture-safe (64 vs 32 bit) type to support different platforms and implementations of C.

Apple recommends that you use NSInteger over normal types anyway, I would assume for portability!

You can read more at this Foundation Types Reference.

Basic description:

When building 32-bit applications, NSInteger is a 32-bit integer. A 64-bit application treats NSInteger as a 64-bit integer.

Upvotes: 22

Related Questions