【发布时间】:2012-08-09 03:11:55
【问题描述】:
我认为在 ios 环境中声明 NSInteger 意味着它永远只是一个 32 位值,我是否正确?
我想知道,另一个不熟悉目标 c 的程序员告诉我使用 int32,我在目标 C 中可以找到的唯一类似的东西是 int32_t,_t 代表“整数类型”.. 但是使用这些类型变得非常痛苦,我觉得我没有像 NSInteger 那样从objective c 提供的所有功能控制。
任何帮助将不胜感激。
【问题讨论】:
-
您在 Objective-C 中使用 NSInteger 获得了什么样的控制?
-
我猜不是太多的控制,而是易于使用,例如转换字符串或其他数据类型似乎比其他原始 int 类型(如 int32_t)更容易。即 NSInteger myInt = [myString intValue ]; 希望这是有道理的...我还发现所有 ARM 处理器都是 32 位的。我进行了外部搜索,因为文档没有真正指定。
-
字长在你的应用程序中重要吗?我认为您最好使用 Cocoa 返回的定义和类型。我不确定你的开发同事为什么要提倡别的东西?
-
我猜大小并不重要,他只是想让我确保我将返回的数据放入正确的值类型中。所以如果它是一个字符串到一个 NSString 一个 Bool a bool 但是当涉及到 Integer 值时,他建议使用 32 位 int.. 而我唯一能找到的是 int32_t... 但我认为这是一个 c 值.. 所以我在想我可以使用 NSInteger 吗?没关系,这就是我问这个问题的原因......我想我只是有点紧张,我希望这是正确的,所以在我承诺任何事情之前我会检查事情
-
大声笑,好吧...您的“易用性”方法不正确。对于 NSInteger,您应该使用
integerValue,而不是intValue(它返回...一个 int)。
标签: iphone ios nsinteger int32