我的NSMutableArray不起作用

时间:2010-08-04 18:42:11

标签: objective-c cocoa nsmutablearray

抱歉我的愚蠢问题(初学者) 我在Apple网站上获得了演示程序Accelerometergraph,并希望使用 NSMutableArray中的加速度x的值。 但我的NSMutableArray只包含一个对象,有几个段落 NSMutableArray例程应该包含与计数器相同数量的对象 show,下面的代码如何

if(!isPaused)
{
    array = [[NSMutableArray alloc] init];

    [filter addAcceleration:acceleration];
    [unfiltered addX:acceleration.x y:acceleration.y z:acceleration.z];
    NSNumber *number = [[NSNumber alloc] initWithDouble:acceleration.x];
    [array addObject:number];

    ++a;
    if (a == 30)  // only check the # objs of mutablearray
    {
        sleep(2);
    }
    [filtered addX:filter.x y:filter.y z:filter.z];
}

2 个答案:

答案 0 :(得分:3)

看起来你错过了某种循环。您在上面列出的代码:

  • 确保某些内容未暂停。
  • 创建一个新的(空)可变数组。
  • 为新数组添加值。
  • 做其他一些工作。

我的猜测是整个if {}块位于某种循环中。你需要在循环之外分配和初始化可变数组。

答案 1 :(得分:1)

每次输入if块时都会创建一个新数组,因此addObject:只会将对象添加到最近创建的数组中。

此外,您正在泄漏arraynumber个对象。每次分配对象时,您都有责任释放它。确保您熟悉memory management programming guide中列出的准则。