2010-11-14 17 views
5

मुझे यकीन है कि इसे पहले से ही उत्तर दिया जाना चाहिए लेकिन मैं जवाब के लिए सही खोज शब्द खोजने के लिए संघर्ष कर रहा हूं।विविधता फ़ंक्शन में किसी सरणी के तत्व कैसे पास करें?

मेरे उद्देश्य-सी कोड में मेरे पास अज्ञात संख्या तारों का एनएसएआरएआर है जो मैं अपने तत्वों को एक वैरिएडिक इनिट विधि में पास करना चाहता हूं, इस मामले में ... UIActionSheet के निर्माता में 'अन्य बटन टाइटल' की सूची । यह कैसे हासिल किया जा सकता है?

धन्यवाद अग्रिम में

उत्तर

3

मुझे लगता है कि आप निर्माता के लिए सरणी के पहले तत्व पारित और फिर शेष तत्वों लूप करने के लिए addButtonWithTitle विधि का उपयोग करें और उन्हें जोड़ने की आवश्यकता होगी:

UIActionSheet *mySheet = [[UIActionSheet alloc] initWithTitle:title delegate:delegate cancelButtonTitle:cancelButtonTitle destructiveButtonTitle:destructiveButtonTitle otherButtonTitles:[myOtherButtons objectAtIndex:0],nil]; 

NSMutableArray *otherbuttons = myOtherButtons; 
[otherButtons removeObjectAtIndex:0]; 

NSEnumerator *enumerator = [otherButtons objectEnumerator]; 
id anObject; 

while (title = [enumerator nextObject]) { 
    [mySheet addButtonWithTitle:title]; 
} 
+0

मुझे लगता है कि मैं कुछ और अधिक सुरुचिपूर्ण उम्मीद कर रहा था, धन्यवाद, ठीक काम करता है। – Elric

3

ऐसा करने का कोई सामान्य तरीका नहीं है, लेकिन विशेष रूप से UIActionSheet के लिए, आपको उस कन्स्ट्रक्टर का उपयोग करने की आवश्यकता नहीं है।

UIActionSheet *sheet = [[UIActionSheet alloc] init]; 

// set properties 
sheet.title = @"Title!"; 

// add buttons 
for (NSString *buttonTitle in otherButtonTitles) { 
    [sheet addButtonWithTitle:buttonTitle]; 
} 

sheet.cancelButtonIndex = 
    [sheet addButtonWithTitle:@"Cancel"]; 

UIAlertView को इसी तरह से शुरू किया जा सकता है।

संबंधित मुद्दे