look down
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
you usually want to use NSInteger when you don't konw what kind of processor architechture your code might run on,so you may for som reason, want the largest possible int type, which on 32 bit system is just an int, whileon a 64-bit system it's a long;
so i 'd stick with using NSInteger instead of int / long Unless you specifically require them;
2013 12-13