मैं पिछले कुछ दिनों में एक रहस्य को हल करने का प्रयास कर रहा हूं कि क्यों मेरे एनएसएफटेड रीसेट्स कंट्रोलर 20 के बैच आकार के साथ हमेशा मेरी सभी ऑब्जेक्ट्स में (यानी, स्मृति में लोड) जब fetch समाप्त हो गया, अनुरोध ~ 20 सेकंड लेने का कारण बन गया।कोर डेटा ऑब्जेक्ट्स के साथ गतिशील UITableView ऊंचाई
यह पता चला है कि ऐसा इसलिए था क्योंकि मेरी ऊंचाई में ForRowAtIndexPath, ऊंचाई प्रत्येक प्राप्त वस्तु की एनएसएसटींग संपत्ति की लंबाई पर आधारित थी, और इसलिए तालिका को फिर से लोड करने पर, यदि तालिका में 2000 पंक्तियां हैं, तो ऊंचाई की गणना की जाती है शुरुआत में प्रत्येक पंक्ति के लिए, और जब से मैं ऑब्जेक्ट की टेक्स्ट प्रॉपर्टी एक्सेस करता हूं, तो यह बहुत ही शुरुआत में 2000 ऑब्जेक्ट्स (20 आकार बैचों में) में गलती करेगा, जिससे इसे हमेशा के लिए ले जाया जा सकता है। (मुझे नहीं पता था कि पंक्ति ऊंचाई की गणना शुरुआत में ही की गई थी)।
तो सवाल यह है कि, यदि मेरे पास 20 के बैच आकार के साथ एक परिणाम परिणाम नियंत्रक है, लेकिन मेरी पंक्ति ऊंचाई ऑब्जेक्ट की टेक्स्ट प्रॉपर्टी पर आधारित होती है, जो कि यदि मैं एक्सेस करने का प्रयास करता हूं तो ऑब्जेक्ट नहीं होगा अब एक गलती है लेकिन वास्तव में स्मृति में लोड किया गया है, ऊंचाई की गणना करने के लिए एक कामकाज क्या होगा?
मेरे विकल्प क्या हैं?
क्या होता है यदि आप जांचते हैं कि ऑब्जेक्ट एक गलती है, यदि यह है, तो मनमानी आकार लौटाएं, अन्यथा स्ट्रिंग प्राप्त करें और गणना करें? क्या सेल देखने के लिए आता है जब विधि फिर से बुलाया जाता है? मैं बस अनुमान लगा रहा हूँ। आलसी भार को लागू करना या लागू करना (आईई नई पंक्तियों को स्क्रॉल करते समय जोड़ा जाता है) आपके एकमात्र विकल्प प्रतीत होते हैं। – jrturton
कोई ऊंचाईफॉररो केवल एक रीलोड की शुरुआत में ही बुलाया जाता है, और जब भी कोई सेल दिखाई देता है (जैसे सेलफोररो होगा) को कॉल नहीं किया जाता है। यही मैं भी सोच रहा था, लेकिन मुझे नहीं लगता कि यह काम करेगा .. – Snowman
सोचा था कि यह बहुत आसान लग रहा था। – jrturton