2011-05-10 23 views
36

मैं अनुक्रमित का एक सेट बनाने के लिए कैसे की सुविधा देता है की कहते हैं यह पता लगाने की कोशिश कर रहा हूँ (1, 2, 3) तो यहकोको एनएसआईएनएक्सएक्ससेट: एकाधिक इंडेक्स। इंडेक्स सेट, एकाधिक इंडेक्स कैसे बनाएं?

- (void)selectRowIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend 

में उपयोग यह (NSIndexSet *)indexes मैं कैसे उपयोग करने के लिए नहीं जानता/बनाएँ/इंडेक्स 1, 2, 3. के साथ पॉप्युलेट करें। क्या मुझे क्लास विधि या इंस्टेंस विधि का उपयोग करना चाहिए?

मैं तरीके की एक पूरी गुच्छा की कोशिश की लेकिन मुझे नहीं पता कि मैं क्या कर रहा हूँ ...

उत्तर

7

सरल सूचकांक सेट जो एक सूचकांक या जो एक सीमा द्वारा दर्शाया जा सकता अनुक्रमित के एक समूह को शामिल करने के लिए है (यानी 1,2,3), आप उन्हें NSIndexSet के initWithIndex: या initWithIndexesInRange: विधियों (या उनके फैक्ट्री विधि समकक्ष) का उपयोग करके बना सकते हैं। यदि आप एक अधिक जटिल इंडेक्स सेट (यानी 1,5,7,8,9) बनाना चाहते हैं, तो आपको एनएसएमयूटेबल इंडेक्ससेट का उपयोग करने की आवश्यकता होगी ताकि आप ऑब्जेक्ट बनाने के बाद इंडेक्स और श्रेणियां जोड़ सकें।

इस कोड को एक सूचकांक अनुक्रमणिका 1, 2, और 3 युक्त सेट पैदा करेगा:

[[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1,3)]; 

NSIndexSet और NSMutableIndexSet श्रेणी संदर्भ देखें।

66

अनुक्रमित अपने उदाहरण में लगातार की तरह हैं, तो आप इस का उपयोग कर सकते हैं:

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]; 

यदि नहीं, तो एक परिवर्तनशील सूचकांक सेट बना सकते हैं और अनुक्रमित (या श्रेणियों) एक एक करके जोड़ें:

NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet]; 
[indexSet addIndex:3]; 
[indexSet addIndex:5]; 
[indexSet addIndex:8]; 
+0

तुम क्या साथ wr ओटी, मैं एनएसआईएनएक्सएक्ससेट के लिए दस्तावेज़ों को बार-बार पढ़ता हूं जब तक कि मैं उन्हें समझ नहीं पाता! मुझे लगता है कि सबसे कठिन हिस्सा कोको नहीं है, यह कोड दस्तावेज के तर्क और सूक्ष्मता सीख रहा है! – noyfbja

+0

मुझे लगता है कि दस्तावेज़ीकरण बेहद स्पष्ट है। आपको किस समस्या का सामना करना पड़ा? –

0

यहाँ NSMutableIndexSet की

NSArray * arrSelectedSongs = [self.playListTblView indexPathsForSelectedRows]; 
//Delete From Array 
NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc]init]; 
for (NSIndexPath *indexPath in arrSelectedSongs) 
{ 
    [indexSet addIndex:indexPath.row]; 
} 
[self.arrFiles removeObjectsAtIndexes:indexSet]; 
मदद से स्थानीय सरणी से चयनित सूचकांक को हटाने के लिए एक उदाहरण है
0

स्विफ्ट 3 में भी

[NSIndexSet indexSetWithIndex:1]; 
2

है

let indexSet = IndexSet(integersIn: 1...3) 

या एक ही मूल्य के लिए:

let indexSet = IndexSet(integer: 1) 

या गैर लगातार मूल्यों के लिए:

var indexSet = IndexSet() 
indexSet.insert(1) 
indexSet.insert(3) 
indexSet.insert(9) 
संबंधित मुद्दे