gpt4 book ai didi

ios - 从不同地方调用时,NSMutableArray 返回不同的计数

转载 作者:行者123 更新时间:2023-11-29 01:44:42 25 4
gpt4 key购买 nike

尝试在 ios 8.4 模拟器上运行项目时,NSMutableArray 出现了一个非常奇怪的情况。项目非arc,代码较多,问题总结如下:

  • 我有一个 NSMutableArray *months 实例变量
  • 有一个填充这个数组的方法“populate”
  • 有一个方法“monthCount”(只是 [months count] 的别名)

monthCount 的代码:

NSLog(@"months.count = %i", [months count]);
return [months count];

这就是一切变得奇怪的地方:在“填充”方法中,我正在创建字典并将它们添加到“月”数组中。添加新对象后,我执行以下操作:

NSLog(@"count after adding: %i", [months count]);
NSLog(@"monthCount returned: %i", [self monthCount]);

出于某种原因,只有 [months count] 从“填充”方法中起作用。 [self monthCount] 始终返回“1”。这里有一些奇怪的东西:monthCount 方法正确地看到月数(即此函数中包含的 NSLog 输出正确的计数),但在我返回并打印出“填充”方法中的值后 - 它变为“1”。

我还使用调试器来测试“populate”和“monthCount”方法是否实际上访问了同一个数组,而且它们确实访问了同一个数组。相同的代码也可以在我的 ios7 设备上完美运行(所以也许它只是一个模拟器,但我现在无法在设备上进行测试)。有人知道这里发生了什么吗?

最佳答案

抱歉给大家带来麻烦了。这是一个深夜愚蠢的错误。我刚刚检查了 MonthCount 返回是否被转换为不应该转换的内容,并发现该方法的声明如下:

-(BOOL)monthCount;

我猜旧的编译器以某种方式设法通过这个声明返回整数(虽然我不明白如何)。

关于ios - 从不同地方调用时,NSMutableArray 返回不同的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32064572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com