我被数组和嵌套数组搞砸了。
如果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];
}
答案 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];