2009-09-01 6 views
9

मैं एनएसएमयूटेबलएरे के साथ काम कर रहा हूं और objectAtIndex:int का उपयोग करके किसी ऑब्जेक्ट से किसी ऑब्जेक्ट को पुनर्प्राप्त करने में कोई समस्या नहीं है। इसके बजाय एक पूर्णांक द्वारा सरणी से किसी ऑब्जेक्ट को खींचना एक स्ट्रिंग के साथ सरणी को खोजकर इंडेक्स स्थिति प्राप्त करने का उनका तरीका है।एनएसएमयूटेबलएरे - एक स्ट्रिंग के साथ खोज करके Arrays इंडेक्स इंटीजर प्राप्त करें

animalOptions = [[NSMutableArray alloc] init]; 
//Add items 
[animalOptions addObject:@"Fish"]; 
[animalOptions addObject:@"Bear"]; 
[animalOptions addObject:@"Bird"]; 
[animalOptions addObject:@"Cow"]; 
[animalOptions addObject:@"Sheep"]; 

NSString * buttonTitle = [animalOptions objectAtIndex:1]; 
// RETURNS BEAR 

int * objectIndex = [animalOptions object:@"Bear"]; 
// THIS IS WHAT I NEED HELP WITH, PULLING AN INDEX INTEGER WITH A STRING (ex: Bear) 

उम्मीद है कि इस समझ में आता है, और उसमें डेवलपर एक जवाब है, मैं ऑनलाइन खोज करने के गूगल या एप्पल श्रेणी संदर्भ के माध्यम से कुछ भी खोजने में असमर्थ किया गया है।

उत्तर

34

आप NSArray से indexOfObject: विधि का उपयोग कर सकते हैं:

NSUInteger index = [animalOptions indexOfObject:@"Bear"]; 

अगर कोई डुप्लिकेट प्रविष्टियों तो उस वस्तु की सबसे कम सूचकांक दिया जाता है कर रहे हैं। अधिक जानकारी के लिए, docs पर एक नज़र डालें।

+0

क्या यह दो अलग-अलग एनएसएसट्रिंग्स के साथ काम करेगा - सरणी में से एक और पैरामीटर पारित किया जा रहा है? या तुलना "गहरी" है? – fbrereto

+0

धन्यवाद! आश्चर्यजनक रूप से त्वरित प्रतिक्रिया, यह मेरा सवाल हल किया। – bbullis21

+4

हां - ऑब्जेक्ट को 'isEqual:' संदेश भेजकर समानता का परीक्षण किया जाता है। स्ट्रिंग मान बराबर हैं, भले ही वे दो अलग-अलग उदाहरण हैं, एक 'NSString' उदाहरण YES वापस कर देगा। –

0

आप [array indexOfObject: ऑब्जेक्ट] का उपयोग कर सकते हैं जो उस ऑब्जेक्ट की अनुक्रमणिका को वापस कर देगा, जिस तरह से आप इसे करना चाहते हैं, यह संभवतः स्ट्रिंग ऑब्जेक्ट नहीं है, क्योंकि यह स्ट्रिंग ऑब्जेक्ट नहीं है ऐसा करने में सरणी में

NSString * buttonTitle = [animalOptions objectAtIndex:1];// RETURNS BEARint 
objectIndex = [animalOptions indexOfObject:buttonTitle] //this will return 1 
संबंधित मुद्दे