つまり、基本的に私の質問はこれです。uint64_tオブジェクトをキーとして使用してNSMutableDictionaryを作成しています。
これを行うよりも、それらを作成するためのより良い方法はありますか?
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ビットであることを確認したいと思います。
常にunsignedlonglongを実行することで、問題全体を回避できると思いますが、もちろん、これらのオブジェクトをかなりの数で割り当てると、64ビットマシンで大量のヒープスペースが無駄になります。