2009-02-14 17 views
6

'da Y döngüsünde X için son yinelemede olup olmadığımı nasıl söylerim for (BazıArray'da NSObject * obj) {} sözdizimini kullanarak bir döngüye sahibim. Döngünün son yinelemesinde olup olmadığımı söylemenin kolay bir yolu var mı (yani [someArray sayımı kullanmak zorunda kalmadan)Objective-C

cevap

15

Belki bu işe yarayacak mı?

if (obj == [ someArray lastObject ]) { 
    // ... 
} 
14

Sen obj[NSArray lastObject] eşit olup olmadığını belirlemek için NSArray#lastObject kullanabilirsiniz.

for (NSObject *obj in someArray) { 
    if ([someArray lastObject] == obj) { 
     NSLog(@"Last iteration"); 
    } 
} 
5

Aksine her işleminde diziye çağrı yerine, dizideki son nesne önbelleğe daha iyi olabilir: Hala döngüde yöntemi aradığınız

NSObject *lastObject = [someArray lastObject]; 
for (NSObject *obj in someArray) { 

    // Loop code 

    if (obj == lastObject) { 
     // do what you want for the last array item 
    } 
} 
+0

. İlk iki çizgiyi değiştirmek istediğini düşünüyorum. Başka bir küçük yazım hatası: "For" içindeki "F" harfi – gclj5

+0

Bunu işaretlediğiniz için teşekkürler - Onu düzenleyeceğim. – Abizern