Начинающему какао нужна помощь, используя вещи в NSArray - PullRequest
1 голос
/ 10 июля 2009

меня обманывают массивы и вложенные массивы.

Мне бы хотелось, чтобы оператор вычислялся как True, если lastObject не содержит текст, или если accelerometer.x - lastObject [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 ]

1 голос
/ 10 июля 2009

вам не хватает закрывающего "]" на "[NSNumber numberWithDouble: .1", и я думаю, что вам может понадобиться написать его так:

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

Я думаю, что вы можете поменять "[NSNumber numberWithDouble: .1]" на 0.1 тоже.

1 голос
/ 10 июля 2009

у вас есть дополнительное ":" между [accelerometerArray lastObject] и objectAtIndex: 0

эта строка

[[accelerometerArray lastObject]: objectAtIndex: 0]

0 голосов
/ 10 июля 2009

Вам также нужно завершить объекты NSArray нулем, иначе произойдут плохие вещи. ноль означает, что это конец массива, и обход может остановиться.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...