2012-10-06 15 views
5

यूआईसीओलेक्शन व्यू का उपयोग करते समय, मैं indexPathdidSelectItemAtIndexPath विधि का मान प्राप्त करने से परेशान हूं।यूआईसीओलेक्शन व्यू के इंडेक्सपैथ वैल्यू

मैं didSelectItemAtIndexPath विधि में कोड की निम्न पंक्ति का उपयोग कर रहा:

//FileList is an NSArray of files from the Documents Folder within my app. 
//This line gets the indexPath of the selected item and finds the same index in the Array 
NSString *selectedItem = [NSString stringWithFormat:@"%@",[FileList objectAtIndex:indexPath.item]]; 

//Now the selected file name is displayed using NSLog 
NSLog(@"Selected File: %@", selectedItem); 
समस्या

कि indexPath हमेशा रिटर्न 0 (कोड नीचे देखें) और एक परिणाम के रूप में ही पहला आइटम है फ़ाइललिस्ट NSArray कभी भी चुना गया है। इस तरह के

  • indexPath.row
  • indexPath.item
  • और सिर्फ सादा के रूप में

    मैं कोशिश की है विभिन्न मापदंडों indexPath

इन निम्न सभी NSLog बयान में 0 का मान प्रदान:

NSLog(@"index path: %d", indexPath.item); //I also tried indexPath.row here 

शायद मैं सिर्फ एनएसएसटींग को अनुचित रूप से स्वरूपित कर रहा हूं, हालांकि मुझे नहीं लगता कि यह कोई मामला है क्योंकि कोई चेतावनी नहीं है और मैंने इसे अन्य स्थानों पर अलग-अलग स्वरूपित करने का प्रयास किया है।

इंडेक्सपाथ हमेशा 0 क्यों लौटाता है?

किसी भी मदद की सराहना की जाएगी! धन्यवाद!

+1

कृपया दिखाएं कि आप 'NSLog' – dasblinkenlight

+0

' .item' के लिए तारों को कैसे प्रारूपित करते हैं, यहां उचित संपत्ति है, लेकिन कार्यात्मक रूप से यह '.row' से अलग नहीं है। आपको और दिखाने की ज़रूरत है - आप कैसे जानते हैं कि यह शून्य है? फाइललिस्ट क्या है? – jrturton

+0

मैंने प्रश्न संपादित किया है और इसमें शामिल किया गया है कि मैं NSLog के लिए स्ट्रिंग को कैसे प्रारूपित करता हूं और मैंने स्पष्ट किया है कि फ़ाइललिस्ट क्या है (कृपया टिप्पणी कोड पढ़ें) –

उत्तर

1

आप जिस प्रतिनिधि विधि का उपयोग कर रहे हैं वह हमेशा उस सेल का इंडेक्स पथ प्रदान करता है जिसे चुना गया था। अपने एनएसएलओजी कॉल पर ब्रेकपॉइंट के साथ डीबग करने का प्रयास करें। जब डीबगर उस पर रुक जाता है तो नीचे डीबग क्षेत्र को देखें और कंसोल का उपयोग करें (देखें => डीबग एरिया => यदि आपको इसकी आवश्यकता हो तो कंसोल सक्रिय करें)।

कंसोल में प्रकार: po indexPath

आप कुछ इस तरह देखना चाहिए अगर चयनित आइटम अनुभाग में सूची की 5 वीं है: 0 (प्रथम खंड और शायद केवल एक)

<NSIndexPath 0xa8a6050> 2 indexes [0, 5]

उम्मीद है कि यह पता लगाने में मदद करता है कि क्या हो रहा है।

30

स्पष्ट बताते हुए, सुनिश्चित करें कि आपका कोड didDeselectItemAtIndexPath के बजाय didSelectItemAtIndexPath विधि में है। बाद में विधि में दिए गए टच इवेंट के लिए आपको indexPath मान मिलेंगे और एक्सकोड के कोड पूर्ण होने के साथ गलत डालने में काफी आसान है।

+2

दोस्त, आपने मुझे बचाया। मैं एक घंटे के लिए डिबगिंग कर रहा था, धन्यवाद। –

+2

यह मुझे दो बार पकड़ा। Grrr ... – malaki1974

+2

अरे आप, स्वत: पूर्ण – DaGaMs