Итак, по сути, мой вопрос заключается в следующем: я создаю NSMutableDictionary с использованием объектов uint64_t в качестве ключа.
Есть ли лучший способ создать их, чем делать это?
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
Это будет работать до тех пор, пока вы не включите его в двоичный файл / сокеты / объект NSData / что угодно. Но есть ли лучший способ сделать это? Я действительно хотел бы быть уверен, что объект является 64-битным независимо от того, на какой платформе я его запускаю.
Полагаю, я мог бы просто избежать всей этой проблемы, всегда оставляя unsigned long long, но, конечно, это тратило бы тонны пространства кучи на 64-битных машинах, если бы я выделил эти объекты в любых значительных числах ....