So essentially my question is this, I am creating an NSMutableDictionary using uint64_t objects as the key.
Is there any better way to create them than doing this?
uint64_t bob=7;
NSNumber *bobsNumber;
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
bobsNumber=[NSNumber numberWithUnsignedLong:bob];
#else
bobsNumber=[NSNumber numberWithUnsignedLongLong:bob];
#endif
This would work as long as you didn't include it in a binary file/sockets/NSData object/whatever. But is there any better way of doing this? I really would like to be sure that the object is 64-bits regardless of what platform I run it on.
I guess I could just avoid the whole issue by always going unsigned long long but of course that wastes tons of heap space on 64 bit machines if I allocate these objects in any significant numbers....