2009-07-10 9 views
1

私は、配列と入れ子になった配列を使いこなしています。文がTrueに評価する場合Cocoa初心者はNSArrayのものを使用するのに役立つ必要があります

私はこれをご希望の場合lastObjectのdoesn'texist場合、または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]; 
} 

答えて

1

ます」 「NSNumber numberWithDouble:.1」の「閉じる」の「行方不明」が表示されていて、あなたのように書く必要があると思います。

[[NSNumber numberWithDouble:acceleration.x] doubleValue] - 012 [] [0] doubleValue]> 0.1)

「[NSNumber numberWithDouble:.1]」を0.1で置き換えることができると思います。

1

あなたは余分を得た ":" [accelerometerArray lastObject]とobjectAtIndexの間で:0

このライン

[[accelerometerArray lastObject]:objectAtIndex:0]

+0

おかげで、今私は新しいエラーを取得しています:)「エラー:バイナリへの無効なオペランド - ( 『のNSNumber構造体』と 『ID』を持っています)」 –

0

また、NSArrayオブジェクトをnilで終了する必要があります。 nilは配列の終わりであり、トラバーサルが止まることを示します。

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

関連する問題