2011-05-26 23 views
8

değerini geçerek bulun Bir dizide, belirli bir değerin var olup olmadığını öğrenmek için (bir döngü kullanarak aramadan) dizide mümkün müdür? Herhangi bir varsayılan rasgele yöntem. documentation'dan geçtim, ancak çok alakalı bulamadım.Bir NSArray öğesinin değerini

Lütfen bana valueForKey yönteminden de bahsedin (bunu doc'dan çıkaramadım).

cevap

10

containsObject: yöntem genellikle ne istediğini size verecektir dayalı NSArray - Belirli bir örneği için sorguluyorsunuz gibi Adından sesler ise (Yani aynı semantik değeri ile iki nesne eşleşmez) aslında nesneler üzerinde isEqual: çağırır, böylece değeri tarafından sınanıyor.

Başlığın önerdiği gibi, öğenin dizinini istiyorsanız, indexOfObject: kullanın, ayrıca eşleşmeyi bulmak için isEqual: çağrılır. Bir dizi sözlüğünüzün olduğu durumlarda kullanılır; her sözlükteki anahtarı arar ve sonuçların iadesi ve dizisi.

6

indexOfObject yöntemini kullanmak istediğinizi düşünüyorum. the documentation kaynaktan:

indexOfObject:

karşılık gelen dizi değeri Belirli bir nesne eşittir düşük dizinini döndürür. olan dizi değerine karşılık gelen

- (NSUInteger)indexOfObject:(id)anObject

Parametreler

anObject

An object. 

dönüş değeri

düşük dizin eşit t anObject. dizideki nesnelerin hiçbiri anObject'a eşitse, NSNotFound değerini döndürür.

Tartışma

Nesneler eşit kabul edilir isEqual: getiri YES eğer. Önemli

: anObjectnil ise bir özel durumu oluşturuldu.

+0

Teşekkür Bunun için senin hızlı doğru yanıt ve düzenlemek (1 için), Ancak CRD de sorduğum gibi, valueForKey açıkladı. – rptwsthi

0

Kullanım NSPredicate filtrelemek için bir NSDictionary

array = [dictionary filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(key == %@)", value]]; 

if([array count]>0) 
{ 
value exists; 
} 
4

Sen kullanabilirsiniz:

NSInteger idx = [myArray indexOfObject:obj]; 

nesnesinin dizinini bulmak için.
Ve nesne kullanabilir dizide orada olup olmadığını kontrol etmek için:

- (BOOL)containsObject:(id)anObject 
0

böyle objectAtIndex ve indexOfObject birleştirin:

[tmpArray objectAtIndex:[tmpArray indexOfObject:yourObject]]; 
İlgili konular