मैं एक UITableView से निपटने के लिए एक NSFetchedResultsController का उपयोग कर रहा हूं और सब कुछ ठीक काम करता है और मुझे यह बहुत शक्तिशाली लगता है, खासकर परिणाम प्रतिनिधि के साथ। तालिका को ड्रिल करने के लिए मैं उसी नियंत्रक वर्ग का पुन: उपयोग कर रहा हूं, जो सेल पंक्ति पर क्लिक करके पैरामीटर के साथ तत्काल हो जाता है, नियंत्रक को फिर UINavigationController पर धक्का दिया जाता है और एक अन्य तालिका दृश्य, फिर से NSFetchedResultsController के साथ बनाया जाता है।NSFetchedResultsController कैश का सही उपयोग
इस बिंदु पर, प्रत्येक नियंत्रक का अपना कैश होता है, और कैश नाम एक अद्वितीय पहचानकर्ता [एनएसएसटींग स्ट्रिंगविथफॉर्मैट "कैशनाम _% @", अद्वितीय स्ट्रिंगफॉरसेल] के साथ लिया जाता है, और अंत में मैं स्पष्ट रूप से कई कैश कर सकता हूं।
अब प्रश्न।
1) कई कैश होने से समस्या हो सकती है?
2) हमें कैश का उपयोग कब करना चाहिए?
3) deleteCacheWithName के मामले में, ऐसी विधि रखने के लिए सबसे अच्छी जगह कहां है? मैंने दृश्य में कोशिश की है, लेकिन इसके साथ मुझे लगता है कि दृश्य फिर से दिखाई देगा जब कैश फिर से दिखाई देगा और कैश अब मौजूद नहीं है, उदाहरण के लिए जब UINavigationController के साथ उपयोग करना है। शायद dealloc विधि सबसे अच्छी जगह है?
4) कैश और मेमोरी प्रबंधन के बीच संबंध क्या है? मेरा मतलब है, जब एक (शून्य) किया गया ReceiveMemory चेतावनी भेजा जाता है क्या मुझे कैश को हटाने की जरूरत है? यदि हां, तो इसे फिर से पुनर्निर्माण के बारे में क्या? पसंदीदा तरीका क्या है, शायद fetch जारी कर रहे हैं?
5) fetch नियंत्रक के प्रतिनिधि को UITableViewController (fetchController.delegate = self) पर सेट किया गया है, क्या इसमें कोई समस्या है? एक अर्थ में कि एक से अधिक नियंत्रकों को बदलने के मामले में सतर्क किया जाता है? और हटा देता है कैशविथनाम प्रतिनिधि को भी हटा देता है?
धन्यवाद