2013-05-15 52 views
0

我有一個包含20個項目的數組。我想搜索數組,將一個項目與數組中的下一個項目進行比較,然後打印較大的項目。我已經對數組進行了排序。我只想比較兩個項目,檢查兩個值之間的餘數,如果大於四個,則打印較大的項目。在一個NSArray中比較兩個項目

+1

每對值,或者價值觀的兩個具體指標,或者是什麼關係?你的值是'NSNumber'嗎? –

+1

迭代。有幾種不同的方法可以做到這一點,但一個普通的''for'循環應該沒問題。 –

+0

比較[這裏]一些好的做法(http://stackoverflow.com/questions/805547/how-to-sort-an-nsmutablearray-with-custom-objects-in-it?rq=1) –

回答

0
NSArray* arr = [NSArray arrayWithObjects: 
    [NSNumber numberWithInt:1], 
    [NSNumber numberWithInt:6], 
    [NSNumber numberWithInt:7], 
    [NSNumber numberWithInt:11], 
    nil 
]; 

int len = [arr count]; 

for (int i=0; i < len-1; ++i) { 

    int num1 = [[arr objectAtIndex:i] intValue]; 
    int num2 = [[arr objectAtIndex:i+1] intValue]; 

    if (num2-num1 > 4) { 
     NSLog(@"%d", num2); 
    } 
} 

--output:-- 
    6 
+1

num2將在下一次迭代中爲num1。在進入for循環前簡單地設置num1一次,該循環應該從1 -

+0

@ AminNegm - 阿瓦德,尼斯減少訪問數組! – 7stud

0
NSEnumerator *itemEnumerator = [theArray objectEnumerator]; 
YourClass *lastObject = [itemEnumerator nextObject]; 
YourClass *compareObject; 
while((compareObject = [itemEnumerator nextObject]) != nil) 
{ 
    if(/* place your condition here */) 
    { 
    NSLog(…); 
    } 
    lastObject = compareObject; 
} 

Typped在Safari