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.
When building 32-bit applications, NSInteger is a 32-bit integer. A 64-bit application treats NSInteger as a 64-bit integer.