2012-10-25 25 views
13

Ama bir lastObject var, kimse nedenini biliyor mu?NSArray'ın bir firstObject yöntemi yok mu?

+0

Bir blog bile var: http://troybrant.net/blog/2010/02/adding-firstobject-to-nsarray/ – zchenah

+3

Arkadaşlarımdan birine göre aslında bir - [NSArray firstObject] var. uzun bir süre, sadece özel oldu. –

+2

Ayrıca bir '-secondObject' veya' -thirdObject' yoktur. – Caleb

cevap

19

Tahminimce, lastObject daha fazla kodlayıcı kodunu azaltmasıdır. [array lastObject], modern Objective-C sözdizimini kullanarak [array objectAtIndex:array.count - 1] veya array[array.count - 1] değiştirin.

firstObject durumunda, [array objectAtIndex:0] veya array[0]'u kontrol edebilirsiniz. Sadece bu işlevi yazmak yerine, lastObject'u arayabilmesi için işleri kolaylaştırmaya yardımcı olur.

@Nathaniel Symer yukarıda onun yorumunda önerildiği gibi Güncelleme

, firstObject önce mevcut ama sadece özel API olmuştur (Ben iOS 4 yana inanıyoruz). Ancak, iOS 7 SDK'nın piyasaya sürülmesinden sonra, firstObject artık herkese açık!

+1

Aynı düşünceyi söyleyecektim, son nesne aslında en yüksek endekse sahip nesne için sorgu yapıyor, bu yüzden bunun için bir kolaylık yöntemi var. – Pochi

+0

Evet, teşekkürler. Bu çok mümkün. Ben sadece [myArray objectAtIndex: 0] ve [myArray lastObject] ... – zchenah

+0

@NSPostWhenIdle kullandığımda tür "dengesizlik" hissediyorum :) ama plz başka bir fikir olup olmadığını görmek için bir dakika beklemem için bana izin ver – zchenah