2009-07-10 83 views
1

我正在被數組和嵌套數組欺騙。可可初學者需要幫助使用NSArray中的東西

我想這個if語句來計算爲true,如果lastObject doesn'texist,或者如果accelerometer.x - lastObject [0]> 0.1

我的代碼並沒有這樣做。在[accelerometerArray lastObject]之間和objectAtIndex:

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] - [[[[accelerometerArray lastObject] objectAtIndex:0] doubleValue]> 0.1)

我認爲你可以用0.1換出「[NSNumber numberWithDouble:.1]」。

1

你得到了一個額外的 「」:0

此行

[accelerometerArray lastObject]:objectAtIndex:0]

+0

謝謝,現在我得到一個新的錯誤:)「錯誤:無效的操作數爲二進制 - (有‘結構的NSNumber’和‘身份證’)」 – 2009-07-10 02:37:26

0

您還需要結束您的NSArray對象與零或不好的事情會發生。 nil表示它是數組的結尾,遍歷可以停止。

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