Cocoa初学者需要帮助使用NSArray中的东西

时间:2009-07-10 02:21:53

标签: iphone cocoa-touch

我被数组和嵌套数组搞砸了。

如果lastObject不存在,或者如果accelerometer.x - lastObject [0]> 0.1

我的代码不会这样做。

if (![accelerometerArray lastObject] || 
  [NSNumber numberWithDouble:acceleration.x] - 
  [[accelerometerArray lastObject] objectAtIndex: 0] > [NSNumber numberWithDouble:.1) 
 {

  NSArray *entry = [[NSArray alloc] initWithObjects:
                    [NSNumber numberWithDouble:acceleration.x],
                    [NSNumber numberWithDouble:acceleration.y],
                    [NSNumber numberWithDouble:acceleration.z], 
                    [NSDate date]];

  [accelerometerArray addObject: entry];
  [entry release];
}

3 个答案:

答案 0 :(得分:1)

你在[accelerometerArray lastObject]和objectAtIndex:0

之间加了一个“:”

这一行

[[accelerometerArray lastObject]:objectAtIndex:0]

答案 1 :(得分:1)

你错过了关于“[NSNumber numberWithDouble:.1”的关闭“]”,我想你可能需要把它写成:

[[NSNumber numberWithDouble:acceleration.x] doubleValue] -   [[[accelerometerArray lastObject] objectAtIndex:0] doubleValue]> 0.1)

我认为您也可以用0.1替换“[NSNumber numberWithDouble:.1]”。

答案 2 :(得分:0)

你还需要结束你的NSArray对象,否则会发生坏事。 nil表示它是数组的末尾,遍历可以停止。

NSArray *entry = [[NSArray alloc] initWithObjects: [NSNumber numberWithDouble:acceleration.x], [NSNumber numberWithDouble:acceleration.y], [NSNumber numberWithDouble:acceleration.z], [NSDate date], nil];