2014-10-30 10 views
7

"NSCell का धीरे-धीरे प्रतिवाद" AppKit Release Notes for OS X v10.10 की धारा का कहना है:एनएससीएल क्यों बहिष्कृत है और इसे पहली जगह क्यों पेश किया गया था?

मैक ओएस एक्स 10.10 कोशिकाओं के अंतिम निंदा की दिशा में एक और कदम लेता है।

मैंने सुना है कि NSCell प्रदर्शन कारण के लिए पेश किया गया था। लेकिन फिर यह क्यों निराशाजनक है?

उत्तर

9

NSCell कुछ मेगाहर्ट्ज मेमोरी के साथ मशीनों पर नेक्स्टस्टेप दिनों में प्रदर्शन कारणों के लिए पेश किया गया था, जब प्रत्येक टेबल सेल के लिए पूर्ण NSView होने पर एक असाधारण असाधारण था। आईओएस में, टेबल दृश्यों को कोशिकाओं की बजाय विचारों का उपयोग करके नाटकीय रूप से सरलीकृत किया गया था। ओएस एक्स 10.7 में, ऐप्पल ने ओएस एक्स को उसी दिशा में ले जाना शुरू किया, और हम अंततः वहां पहुंच रहे हैं।

NSCell हमेशा की तरह, one of the most annoying functions NeXT ever wrote, जिनमें से कम से कम नहीं ओएस एक्स पर एक प्रमुख परेशानी हो गया है क्योंकि यह NSCopyObject() का उपयोग करता है। यह एक एकल पाठ संपादक भी प्रदान करता है (NSText) जो सभी टेक्स्ट-एंट्री दृश्यों के बीच साझा किया जाता है। यदि आप सावधान नहीं हैं, तो इस साझा ऑब्जेक्ट के माध्यम से विचार एक दूसरे के साथ हस्तक्षेप करते समय भ्रमित बग का कारण बन सकते हैं। नियंत्रण और कोशिकाओं के बीच अलगाव और डुप्लिकेशंस हमेशा ओएस एक्स देवों के बीच भ्रम का स्रोत रहा है।

एक समय पर, इसकी आवश्यकता थी, लेकिन उन दिनों में बहुत समय बीत चुका है। अधिकांश मामलों में हमें अब "पूर्ण एनएसवी व्यू उपclass के ऊपरी हिस्से" के बारे में चिंता करने की ज़रूरत नहीं है। विशेष रूप से CALayer के अतिरिक्त ने उन्हें इतना तेज़ बना दिया है।

संबंधित मुद्दे