मेरे पास निम्न त्रुटि है जो इस त्रुटि का उत्पादन कर रहा है। मैं समझ नहीं पा रहा हूं कि subarrayWithRange संदेश स्ट्रिंग में क्यों भेजा जा रहा है? जब यह स्पष्ट रूप से एक सरणी है?अनजान चयनकर्ता को भेजा गया [एनएससीएफस्ट्रिंग सबएरे विथेंज:]
static const int kItemsPerView = 20;
NSRange rangeForView = NSMakeRange(page * kItemsPerView, kItemsPerView);
NSMutableArray *temp = [[APP_DELEGATE keysArray] mutableCopyWithZone:NULL];
NSArray *itemsForView = [temp subarrayWithRange:rangeForView];
for (int loopCounter = 0;loopCounter < r*c;loopCounter++){
NSLog(@"%i: %@ ", loopCounter, [itemsForView objectAtIndex:loopCounter]);
}
त्रुटि:
-[NSCFString subarrayWithRange:]: unrecognized selector sent to instance 0x6b071a0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: [NSCFString subarrayWithRange:]:
धन्यवाद
निर्माण के बाद, 'temp' 80 तार की एक सरणी, डिबग टूलटिप केवल यकीन है कि 10 आइटम यद्यपि नहीं दिखाता है कि सिर्फ Xcode है या नहीं है? आप सही कुंजी हैंअरे मेरे ऐप प्रतिनिधि में एक आवृत्ति चर है, एक संपत्ति जिसे परिभाषित किया गया है (nonatomic, retain) और फिर एक सुविधा विधि 'arrayWithContentsOfFile' का उपयोग करके संश्लेषित और असाइन किया गया है। मुझे इसे मैन्युअल रूप से बनाए रखने की आवश्यकता नहीं है? – joec
हां। आपने इसे नहीं बनाया, सुविधा विधि ने किया। इसलिए, यदि आप इसे बनाए जाने के बाद चारों ओर चिपकना चाहते हैं, तो आपको बनाए रखने (या अपनी खुद की एक प्रति बनाकर) दावा करने की आवश्यकता है। मेमोरी प्रबंधन नियमों पर एक और नज़र डालें। –
यदि आप असाइन करने के बजाए संपत्ति एक्सेसर का उपयोग करते हैं, तो आपको बनाए रखने की आवश्यकता नहीं होगी; या, आप '[[NSArray alloc] initWithContentsOfFile: @" somepath "] को इसके बजाय कॉल कर सकते हैं। – jlehr