Iphone NSInteger是32位整数吗

Iphone NSInteger是32位整数吗,iphone,ios,nsinteger,int32,Iphone,Ios,Nsinteger,Int32,我认为在ios环境中声明NSInteger意味着它永远只能是32位的值,这是正确的吗 我想知道另一个不熟悉objective c的程序员告诉我使用int32,我在objective c中能找到的唯一类似的东西是int32,它代表“整数类型”。。但是与这些类型的人一起工作真的很痛苦,我觉得我没有像NSInteger这样的objective c提供的所有功能控制 非常感谢您的帮助。以下是在旧SDK的“NSObjCRuntime.h”中如何定义“NSInteger”: #if __LP64__ ||

我认为在ios环境中声明NSInteger意味着它永远只能是32位的值,这是正确的吗

我想知道另一个不熟悉objective c的程序员告诉我使用int32,我在objective c中能找到的唯一类似的东西是int32,它代表“整数类型”。。但是与这些类型的人一起工作真的很痛苦,我觉得我没有像NSInteger这样的objective c提供的所有功能控制

非常感谢您的帮助。

以下是在旧SDK的“
NSObjCRuntime.h
”中如何定义“
NSInteger
”:

#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
截至2013年9月,iPhone现在可以运行64位芯片,这意味着NSInteger可能要大得多


在我自己的编码中,如果我在做纯目标C,我会坚持使用
NSInteger
,因为未来会证明我的代码是正确的。另一方面,开源的东西和某些程序员喜欢使用“
uint32\u t
”或“
int32\u t
”和其他类似的显式类型,所以当我看到这些类型时,我会尝试在我正在做的代码中匹配它们的样式,以便与之配合使用。

typedef的存在是为了保护您不受基本类型的影响,这就是为什么要使用它们而不是原始类型,即所谓的可移植性。

更新iOS 11:n Integer可以是32位或64位,具体取决于构建的应用程序和iOS版本

构建32位应用程序时,NSInteger是32位整数。A. 64位应用程序将NSInteger视为64位整数


Objective-C中的NSInteger提供了什么样的控制?我想没有那么多控制,但易于使用,例如转换字符串或其他数据类型似乎比其他原始int类型(如int32\t)更容易。。i、 e.NSInteger myInt=[myString intValue];希望这有意义。。。我还发现所有ARM处理器都是32位的。。我做了一个外部搜索,因为文档没有真正指定。字号在你的应用程序中重要吗?我认为最好使用Cocoa返回的定义和类型。我不确定您的开发人员同事为什么提倡其他东西?我想大小没有那么重要,他只是想让我确保将返回的数据放入正确的值类型中。。所以如果它是一个字符串变成了一个NSString,一个Bool,一个Bool,但是当谈到整数值时,他建议使用32位int。。我唯一能找到的就是int32\t。。。但我认为这是一个c值。。然后我在想我可以用一个NSInteger吗,这样就可以了,这就是为什么我要问这个问题。。。我想我只是有点紧张,我希望这是正确的,所以我在做任何事情之前都会检查一下。哈哈……你的“易用性”方法是不正确的。对于NSInteger,您应该使用
integerValue
,而不是
intValue
(返回一个int)。谢谢,你的最后一句话正是我面临的困境。我只用objective C开发了6个月左右的时间,现在我正在做的项目是一个应用程序端口,由一个真正有成就的开发人员(我的老板)开发,他使用delphi和其他语言。因此,我使用的变量类型经常令人困惑,因为他以前从未见过它们,当我被要求解释为什么选择这些变量时,我感到非常紧张,所以现在我非常努力地完全理解我的决定。我想因为我缺乏经验,我不得不问这样的小问题。我不认为这是一个小问题。如果另一个人坚持“
int32\u t
”,那就尽力让他高兴(特别是如果是你的老板)。干杯,是的,我可能会在早上和他谈谈我的发现(你们帮我的发现),看看他怎么说。。但如果它是一个与他原来的建议几乎相同的本土替代品,我想他会认为这没问题…再次感谢。期待意外。苹果公司刚刚宣布为新款iPhone 5s推出64位架构的A7芯片;-)