2010-11-11 7 views
32

मेरे पास डेटा सेट है जिसमें छवियां भी शामिल हैं। मैं इस डेटा को कैश करना चाहता हूं। क्या मुझे उन्हें फाइल सिस्टम या कोर डेटा पर स्टोर करना चाहिए और क्यों?कोर डेटा में या फ़ाइल के रूप में छवियों को संग्रहीत करना?

उत्तर

36

दो मुख्य विकल्प हैं:

  1. स्टोर डिस्क पर फ़ाइल, और उसके बाद कोर डेटा में छवि के लिए पथ
  2. स्टोर की दुकान कोर डेटा में छवि के बाइनरी डेटा

मैं व्यक्तिगत रूप से पहला विकल्प पसंद करता हूं, क्योंकि यह मुझे चुनने की अनुमति देता है जब मैं स्मृति में वास्तविक छवि लोड करना चाहता हूं। इसका मतलब यह भी है कि मुझे याद रखना नहीं है कि कच्चे डेटा का प्रारूप किस प्रकार है; मैं सिर्फ alloc/init पर एक नया UIImage ऑब्जेक्ट का पथ उपयोग कर सकता हूं।

+0

तो क्या आप यह कहना चाहते हैं कि क्या मैं कोर डेटा में बाइनरी डेटा के रूप में छवि संग्रहीत कर रहा हूं, मुझे इसे पुनर्स्थापित करते समय मूल फ़ाइल प्रारूप को जानने की आवश्यकता है। क्या कोर डेटा में डेटा संग्रहीत करने का कोई और नुकसान है? – Abhinav

+1

@ अहिनाव सही; दूसरी बात यह है कि मैं कहूंगा कि छवि को कोर डेटा से बाहर रखकर, आप अपनी स्टोर फ़ाइल को छोटा रख रहे हैं। चाहे वह नुकसान हो, बहुत सारे और प्रदर्शन प्रदर्शन के बहुत सारे जवाब दिए जाएंगे। :) –

+0

तो इसका मतलब है कि कोर डेटा के बाहर भारी छवि फ़ाइलों को रखने से ऐप प्रदर्शन में वृद्धि होगी। क्या मैंने इसे सही ढंग से समझा? – Abhinav

16

आप बाइनरी बड़ी ऑब्जेक्ट्स (बीएलओबी) से निपटने के तरीके पर कोर डेटा प्रोग्रामिंग गाइड से this पढ़ना चाहेंगे। अंगूठे के नियम हैं कि वास्तविक कोर डेटा स्टोर में किस आकार के बाइनरी डेटा को संग्रहीत किया जाना चाहिए और उसे संग्रहीत नहीं किया जाना चाहिए।

तुम भी Core Data iPad/iPhone BLOBS vs File system for 20k PDFs

को देखो आप कोर डाटा स्टोर के उस जगह बाइनरी डेटा करते हैं हो सकता है, आप अच्छी तरह से एक "डेटा" इकाई है कि वास्तविक डेटा धारण करने के लिए क्या करना होगा और अपने "छवि" इकाई अलग करने के लिए । दो इकाइयों के बीच एक रिश्ता बनाएं, ताकि "डेटा" को वास्तव में आवश्यक होने पर केवल लोड किया जाना चाहिए। "छवि" इकाई मेटा-डेटा जैसे शीर्षक, डेटा प्रकार इत्यादि रख सकती है

+7

डेटा संग्रह करने के लिए अलग इकाई के बारे में +1 अच्छा विचार। :) –

0

उपयोगकर्ता डेटा/फ़ाइलों को स्टोर करने के संबंध में (मुझे "एप्लिकेशन समर्थन" एक सभ्य स्थान होने के लिए मिला है, उपयोगकर्ता को किसी भी तरीके से फ़ाइल को स्थानांतरित करने, हटाने या बदलने से सावधान था जिसके परिणामस्वरूप छवि को पुनर्प्राप्त करने में सक्षम नहीं किया गया था और बाद में मेरे आवेदन द्वारा उपयोग किया जा सकता था)

मिर्चक्राफ्ट को उदाहरण के रूप में लें: उदाहरण के लिए। "~/लाइब्रेरी/एप्लिकेशन सपोर्ट/माइनक्राफ्ट/सेव्स /"

मैं कोर डेटा में छवियों को पिछली टिप्पणियों और स्टोर पथ से सहमत हूं लेकिन अन्यथा छवियों को स्वयं डेटा के बाहर अपने स्वयं के फ़ोल्डर में पीएनजी फाइलों के रूप में संग्रहीत करता हूं ।

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