我有一行代码,根据数据类型“day”和“1”的不同,其工作方式也会有所不同。我相信它是以下内容,尽管我稍后会检查我的源代码。
day = day + 1;
这有道理吗?会有什么差异?
NSInteger
是描述整数的类型定义 - 但它不等于int
在 64 位平台上。
您可以通过 cmd-单击来检查 typedefNSInteger
在 Xcode 中。
NSInteger
定义为int
当构建 32 位应用程序时long
对于 64 位应用程序。
大多数时候你可以用 NSInteger 替换 int,但是这样做时需要考虑一些事情。
Apple 的 Cocoa 64 位过渡指南 http://developer.apple.com/mac/library/documentation/cocoa/conceptual/Cocoa64BitGuide/ConvertingExistingApp/ConvertingExistingApp.html有一些相关信息。
NSNumber http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSNumber_Class/Reference/Reference.html#jumpTo_25是一个帮助您将数字类型存储为对象的类。它具有在不同类型之间进行转换的方法以及检索数值的字符串表示形式的方法。
如果您使用变量day
类型的NSNumber*
就像您在示例中所做的那样,您没有修改day
而是它的内存地址。
如果您正在使用时间值,您还可以看看NSDate http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)