【问题标题】:iPhone - core data NSInteger, integer32, int or whateveriPhone - 核心数据 NSInteger、integer32、int 或其他
【发布时间】:2012-02-02 00:32:32
【问题描述】:

我有一个核心数据值为“整数 32”。我应该如何设置/从中获取值?

[NSNumber numberWithInteger:X]

或与

[NSNUmber numberWithInt:X] 

?

【问题讨论】:

  • 他们是一样的????谢谢。
  • 在 64 位机器上 NSInteger 很长(整数 64),但在 iPhone 上它们是一样的
  • 现在 iPhone 也是 64 位的,这个答案还一样吗?

标签: iphone objective-c ios xcode core-data


【解决方案1】:

正如杰克所说,这是一个 typedef。为了补充答案,您可以通过以下方式找到答案。

在 XCode 中,按住 Apple 键并打开源文件。你会看到 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

另外,xlc0212 的观点也不错。如果您阅读上面的定义,那就很清楚了。

【讨论】:

  • +1 这是有史以来最棒的 Xcode 功能之一。非常适合快速查看公共方法/属性。
【解决方案2】:

NSInteger 只是typedefint,因此您不会以某种方式失去/获得整数精度。两者都可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多