将 (u)int64_t 转换为 NSNumber

2024-01-23

所以本质上我的问题是这样的,我正在使用 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 位的,无论我在什么平台上运行它。

我想我可以通过始终使用 unsigned long long 来避免整个问题,但是如果我以任何有效数量分配这些对象,这当然会浪费 64 位计算机上的大量堆空间......


long long在 64 位 OS X/iOS 平台上是 64 位。在所有 OpenStep 后代平台上,numberWithUnsignedLongLong:是正确的uint64_t.

上次我检查过,您使用的工厂方法实际上并不影响所使用的表示;它仅取决于数字的值(除非您使用的尺寸太小,导致其被截断)。

Update:这些天,正确答案是NSNumber *bobsNumber = @(bob);.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 (u)int64_t 转换为 NSNumber 的相关文章

随机推荐

  • Manifest 文件的用途是什么

    https docs oracle com javase tutorial deployment jar manifestindex html https docs oracle com javase tutorial deployment
  • 枚举所有打开的连接

    是否可以使用 NET枚举当前进程的所有打开的连接 与 netstat 工具执行此操作的方式类似 您可以使用IPGlobalProperties http msdn microsoft com en us library system net
  • 验证 React Native 中的 Style 属性类型

    我有一个组件 它的属性包含子组件的西林 我想确保propTypes正确验证它的类型 我可以从 React Native 代码中得知它有一个ViewStylePropTypes https github com facebook react
  • 如何将 DLL 链接到我的项目?错误 LNK2019:无法解析的外部符号

    我有一个文件foo h有各种函数声明 所有这些功能都在一个文件中实现foo dll 但是 当我包含 h 文件并尝试使用任何函数时 我收到错误 bar obj error LNK2019 unresolved external symbol
  • 替换单词和字符串 pandas

    dataframe pd DataFrame Date This 1A1619 person BL171111 the A 1 24 dont Z112 but NOT 1 22 2001 mix 1A25629Q88 or A13B ok
  • 通过 tqdm.write() 重定向 python 脚本中的打印命令

    我在用着tqdm在 Python 中显示脚本中的控制台进度条 但是 我必须调用函数print消息也发送到控制台 我无法更改 一般来说 在控制台中显示进度条时写入控制台会弄乱显示 如下所示 from time import sleep fro
  • 将 tqdm 与并发.futures 一起使用吗?

    我有一个多线程函数 我想要一个状态栏来使用tqdm 有没有一种简单的方法来显示状态栏ThreadPoolExecutor 让我困惑的是并行化部分 import concurrent futures def f x return f 2 my
  • 检查引荐来源网址

    我用它来检查某人是否来自 Reddit 但它不起作用 var ref document referrer if ref match http www reddit com gi alert You came from Reddit else
  • JavaScript 类型的最大大小?

    通过研究 javascript 类型 我试图找出某些数据类型的最大存储大小是多少 例如 我设置了一个快速递归算法来增加 var 大小 直到浏览器崩溃 最终在我现有的 chrome 版本上 字符串接近 128mb 或者可能是 256 我一直在
  • DynamoDb 如何查询全局二级索引?

    我创建了一个如下表 其中全局二级索引为 Em 代表电子邮件 TableName Users KeySchema AttributeName Ai KeyType HASH Partition key AttributeName Ui Key
  • 如何使用 Identity 在 ASP.NET Core 项目中禁用 HTTPS?

    我最近在 Visual Studio 2019 中创建了一个 ASP NET Core 3 0 Web 应用程序项目 启用了 Docker 但我认为这不相关 并且在包含 ASP NET Identity 时似乎无法禁用 HTTPS个人用户帐
  • 找不到目标“x86_64-apple-ios-simulator”的模块

    我有我的自定义框架 它在 XCode 10 中正常工作 我在 XCode 11 beta 3 中重建它 然后集成到应用程序中 并收到以下错误 找不到目标 x86 64 apple ios simulator 的模块 MyCustomFram
  • 生成7位随机数

    如何产生 100 万到 1000 万之间的随机数 rand 10 有效 我试过了rand 1 10 但这不起作用 取你的基数 1 000 000 并添加一个从 0 到最大起始数的随机数 1 000 000 Random rand 10 00
  • Log4Net配置日志级别

    我该如何制作Log4net http logging apache org log4net index html只记录Info级别的日志 这可能吗 只能设置一个阈值吗 这就是我所拥有的 它按照我的预期记录了信息及以上内容 我能做些什么让它只
  • 无法导入Pytorch [WinError 126]找不到指定的模块

    我正在尝试在 Windows 10 上进行 Pytorch Torchvision 的基本安装和导入 我安装了 Anaconda 并创建了一个名为 photo 的新虚拟环境 我打开 Anaconda 提示符 激活环境 然后运行 photo
  • 如何在 jQuery 中获取前一个 `` 的值?

    如何获取上级的ID td s td
  • 如何在谷歌计算引擎上打开端口

    在谷歌计算引擎上 我可以通过 localhost 访问服务器上的端口 但我无法使用来自同一服务器或外部客户端计算机的 IP 地址访问同一端口 我尝试在Web控制台页面上创建新的防火墙规则 并且可以从Linux命令中看到它 但端口8888仍然
  • 是否可以在不使用助手的情况下在车把模板中分配参数值?

    我正在尝试在模板中分配值 想法是执行以下操作 if author className classA lt trying to implement this line else className classB if div class di
  • 如何在 HTML 中嵌入流媒体视频 (rtmp)

    如何在 HTML 中嵌入流媒体视频 rtmp 链接rtmp http 42 116 119 44 4022 udp 225 1 2 244 30120 http 42 116 119 44 4022 udp 225 1 2 244 3012
  • 将 (u)int64_t 转换为 NSNumber

    所以本质上我的问题是这样的 我正在使用 uint64 t 对象作为键创建一个 NSMutableDictionary 还有比这样做更好的方法来创建它们吗 uint64 t bob 7 NSNumber bobsNumber if LP64