0

我在 iOS7 中的 NSUInteger 遇到了一个非常奇怪的问题,

在iOS7之前一切都很完美,我想这与iOS7中的64位支持有关。

我的代码是这样的,很简单:

if (blah blah blah) {
    NSUInteger firstRow = 0;
    firstRow = ([self.types containsObject:self.selectedMajorType] ?
        [self.types indexOfObject:self.selectedMajorType] + 1 : 0);
    ...
}

根据我的控制台,

[self.types containsObject:self.selectedMajorType] 为

[self.types indexOfObject:self.selectedMajorType]+1 是1

毫无疑问,indexOfObject 也返回一个 NSUInteger(根据 Apple 的文档),

这是屏幕截图: 在此处输入图像描述 但 firstRow 始终是 f king **0

这太令人毛骨悚然了,我不知道 NSUInteger 发生了什么,

有人能帮我吗?非常感谢!!

____新发现____ 在此处输入图像描述

我想这是问题所在?有点奇怪..

4

1 回答 1

0

我试图重新创建这个场景,但我总是得到预期的结果 1。

这是屏幕截图:

在此处输入图像描述

这是项目,尝试运行它,看看您是否仍然遇到问题。

PS。我使用的是 xcode 5.1 和 iPhone 64 位模拟器。

=============更新=================

以下是您使用的 lldb 命令的一些说明。

po:打印对象的目标 C 描述。

print / p:评估当前帧中的广义表达式。如果您的程序中没有使用,请指定函数的返回类型。

希望这个截图能帮助你了解更多。

在此处输入图像描述

于 2014-06-05T09:55:14.933 回答