2012-05-08 14 views
7

इसलिए कैश किए गए डेटा को रखने के लिए एनएससीएच ऑब्जेक्ट को जिंदा रहना चाहिए, जिसका मतलब है कि डेटा को स्टोर करने के लिए उपयोग की जाने वाली वही ऑब्जेक्ट का उपयोग डेटा पुनर्प्राप्त करने के लिए किया जाना चाहिए।उद्देश्य-सी - एक स्थिर एनएसएमयूटेबल डिक्शनरी पर एनएससीएच का उपयोग करने के लाभ?

  • तो प्रश्न यह है कि एनएससीएच का उपयोग एक सिंगलटन एनएस डिक्शनरी पर करने का क्या मतलब है जो मेरा डेटा रखता है?
  • एनएससीएच का उपयोग करने का पसंदीदा तरीका क्या है? स्थैतिक क्षेत्र? इसे प्राप्त करें और एक सिंगलटन बनाएं?

उत्तर

19

एक कैश में कई क्विर्क हैं जो इसे सामान्य उद्देश्य संग्रह के रूप में उपयोग करने के लिए उपयुक्त रूप से उपयुक्त होने पर कैश के रूप में अच्छी तरह से काम करते हैं। के रूप में किए गए दस्तावेज़ों में टिप्पणी की थी

NSCache वस्तुओं का विश्लेषण कई तरीकों अन्य परिवर्तनशील संग्रह से अलग:

  • NSCache वर्ग विभिन्न ऑटो निकालने वाली नीतियों, जो यह सुनिश्चित है कि यह बहुत ज्यादा प्रयोग नहीं करता है को शामिल किया गया सिस्टम की स्मृति। अन्य अनुप्रयोगों द्वारा स्मृति की आवश्यकता होने पर सिस्टम स्वचालित रूप से इन नीतियों को पूरा करता है। जब बोले जाते हैं, तो ये नीतियां कैश से कुछ आइटम हटाती हैं, इसकी स्मृति पदचिह्न को कम करती हैं।
  • आप कैश को अपने आप को लॉक किए बिना अलग-अलग धागे से कैश में आइटम जोड़, हटा सकते हैं और क्वेरी कर सकते हैं।
  • एनएससीएसी ऑब्जेक्ट से कुछ प्राप्त करने से ऑटोरेलेज्ड परिणाम मिलता है।
  • एनएसएमयूटेबल डिक्शनरी ऑब्जेक्ट के विपरीत, कैश उस कुंजी ऑब्जेक्ट्स की प्रतिलिपि नहीं करता है जो इसमें डाल दिया जाता है।

एनएससीएसी कक्षा के लिए ये सुविधाएं आवश्यक हैं, क्योंकि कैश स्वचालित रूप से दृश्यों के पीछे असीमित रूप से अपने आप को विचलित करने का निर्णय ले सकता है यदि इसे स्मृति मुक्त करने के लिए कहा जाता है।

+0

परीक्षण करते समय सावधान रहें .. "AssertEqualObjects" दावा एनएससीएच के दो अलग लेकिन खाली उदाहरणों पर काम नहीं करेगा –

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