2011-05-26 13 views
8

पास करके एनएसएआरएआरई का सूचकांक प्राप्त करें क्या यह एनएसएआरएआरई में यह पता लगाने के लिए संभव है कि कोई दिया गया मान मौजूद है या सरणी में नहीं है (इसे लूप के लिए खोजे बिना)? कोई डिफ़ॉल्ट यादृच्छिक विधि। मैं documentation के माध्यम से चला गया, लेकिन बहुत प्रासंगिक नहीं मिला।मूल्य

कृपया मुझे valueForKey विधि के बारे में भी बताएं (मैं इसे डॉक्टर से प्राप्त करने में असमर्थ था)।

उत्तर

10

containsObject: विधि आमतौर पर आप क्या कह रहे हैं दे देंगे के आधार पर - जबकि इसके नाम लगता है कि आप एक विशिष्ट उदाहरण के लिए जानना चाहते हैं (यानी एक ही अर्थपूर्ण मूल्य से मेल नहीं खाता है) यह वास्तव में वस्तुओं पर isEqual: को आमंत्रित करता है, इसलिए यह मान द्वारा परीक्षण कर रहा है।

यदि आप आइटम का सूचकांक चाहते हैं, जैसा कि आपका शीर्षक सुझाता है, indexOfObject: का उपयोग करें, यह मैच का पता लगाने के लिए isEqual: भी आमंत्रित करता है।

valueForKey: जब आपके पास शब्दकोशों की एक श्रृंखला है; यह प्रत्येक शब्दकोश में कुंजी और परिणामों की वापसी और सरणी को देखता है।

6

मुझे विश्वास है कि आप indexOfObject विधि का उपयोग करना चाहते हैं। the documentation से:

indexOfObject:

सबसे कम सूचकांक जिसका इसी सरणी मान एक दिया वस्तु के बराबर है देता है।

- (NSUInteger)indexOfObject:(id)anObject

पैरामीटर

anObject

An object. 

वापसी मूल्य

सबसे कम सूचकांक जिसका इसी सरणी मान बराबर टी है ओ anObject। यदि सरणी में कोई भी ऑब्जेक्ट anObject के बराबर है, तो NSNotFound लौटाता है।

चर्चा

वस्तुओं बराबर माना जाता है अगर isEqual: रिटर्न YES

महत्वपूर्ण: अगर anObjectnil है एक अपवाद उठाया है।

+0

धन्यवाद अपने तेज सटीक प्रतिक्रिया और उस के लिए संपादित करें (+1), लेकिन सीआरडी ने मूल्यफोर्की का भी वर्णन किया, जैसा कि मैंने पूछा था। – rptwsthi

0

उपयोग NSPredicate फिल्टर करने के लिए एक NSArrayNSDictionary

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

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

आप उपयोग कर सकते हैं:

NSInteger idx = [myArray indexOfObject:obj]; 

वस्तु का सूचकांक खोजने के लिए।
और अगर वस्तु सरणी में वहाँ है या नहीं आप उपयोग कर सकते हैं की जाँच करने के:

- (BOOL)containsObject:(id)anObject 
0

कम्बाइन objectAtIndex और indexOfObject इस तरह:

[tmpArray objectAtIndex:[tmpArray indexOfObject:yourObject]];