gpt4 book ai didi

iphone - int vs NSNumber vs NSInteger

转载 作者:IT王子 更新时间:2023-10-29 07:58:38 27 4
gpt4 key购买 nike

我有一行代码会根据数据类型“day”和“1”以不同方式工作。我相信它是下面的,尽管我稍后会检查我的源代码。

day = day + 1;

这有意义吗?会有什么区别?

最佳答案

NSInteger 是描述整数的类型定义 - 但它不等同于 64 位平台上的 int
您可以通过在 Xcode 中使用 cmd 并单击 NSInteger 来检查 typedef。
NSInteger 在构建 32 位应用程序时定义为 int,在构建 64 位应用程序时定义为 long
大多数情况下,您可以将 int 替换为 NSInteger,但在这样做时需要考虑一些事项。
Apple's 64-Bit Transition Guide for Cocoa有一些关于那个的信息。

NSNumber是一个帮助您将数字类型存储为对象的类。它具有在不同类型之间进行转换的方法,以及用于检索数值的字符串表示形式的方法。
如果您按照示例中的方式使用类型为 NSNumber* 的变量 day,则您修改的不是 day 的值,而是它的内存地址。

如果您正在处理时间值,您还可以查看 NSDate .

关于iphone - int vs NSNumber vs NSInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3032028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com