2009-07-19 8 views
6

कोको/ऑब्जेक्टिव-सी का उपयोग करके मैकॉक्स के लिए एक एप्लीकेशन लिखते समय, मैं उपयोगकर्ताओं द्वारा दर्ज किए गए डेटा को स्टोर करने में सक्षम होना चाहता हूं। इस समय प्रति इंस्टॉलेशन केवल एक उपयोगकर्ता होगा; हालांकि, मैं यह जानना चाहता हूं कि स्टोरेज विधियों को कैसे बदला जाता है यदि यह प्रति इंस्टॉलेशन के एकाधिक उपयोगकर्ता थे।पर्सिस्टेंट स्टोरेज कोको/मैकोज़क्स

प्रति उपयोगकर्ता 1 उपयोगकर्ता के मामले में, क्या मुझे लगातार स्टोरेज के लिए SQLLite से चिपकना चाहिए, या सिफारिश क्या है?

यदि मुझे प्रति इंस्टॉलेशन के लिए एकाधिक उपयोगकर्ताओं की अनुमति देनी है, तो लगातार स्टोरेज विधि किस प्रकार की जाएगी?

उत्तर

7

आप कोर डेटा का उपयोग और प्रति उपयोगकर्ता एक लगातार दुकान बना सकते हैं (में ~/Library/अनुप्रयोग डेटा/मेरे एप्लिकेशन /)

+0

मैं लगभग हमेशा कोर डेटा के साथ एक नया एप्लीकेशन विकसित करता हूं, जब तक कि मैं एक अच्छे अच्छे कारण के साथ नहीं आ सकता। क्लाउड में संग्रहीत डेटा दिमाग में आता है, लेकिन फिर भी मुझे लगता है कि मैं शायद स्थानीय डेटा के रूप में कोर डेटा का उपयोग करूंगा। इसके अलावा, कोर डेटा तेज है। –

+0

यदि आप विभिन्न उपयोगकर्ताओं के बीच डेटा साझा कर रहे थे, जो चीजों को जटिल बना सकता है। लेकिन हमेशा दस्तावेज़-आधारित कोर डेटा होता है ... –

+0

ठीक है। और मैं यह कैसे कर सकता हूं? – mthama

1

आप किस प्रकार का डेटा सहेजना चाहते हैं? बेशक आप कई उपयोगकर्ताओं के लिए डेटा स्टोर करने के लिए स्क्लाइट का उपयोग कर सकते हैं (जैसे फ़ायरफ़ॉक्स यह करता है)।

लेकिन आपके डेटा के आधार पर आप इसे सामान्य फाइलों/दस्तावेजों में सहेजना चाहते हैं? NSCoding प्रोटोकॉल और सार NSCoder कक्षा पर एक नज़र डालें। या दस्तावेज़ आर्किटेक्चर (NSDocumentController, NSDocument, और NSWindowController) देखें।

1

वहाँ केवल पल में स्थापना प्रति एक उपयोगकर्ता हो जाएगा; हालांकि, मैं यह जानना चाहता हूं कि स्टोरेज विधियों को कैसे बदला जाता है यदि यह प्रति इंस्टॉलेशन के एकाधिक उपयोगकर्ता थे।

प्रारूप तब तक अप्रासंगिक है जब तक आप डिफ़ॉल्ट रूप से उपयोगकर्ता की होम निर्देशिका में डेटा को सहेजते हैं।

आपके विकल्पों में संपत्ति सूचियां, कोर डेटा (या तो एक आर्किटेक्चरल निर्णय-आप कोर डेटा पर अपना ऐप आधार बनाते हैं या इसका उपयोग नहीं करते हैं), SQLite, NSKeyedArchiver, और अपने स्वयं के कस्टम प्रारूप शामिल हैं।

2

आप एनएस डिक्शनरी को अपने आंतरिक स्टोरेज तंत्र के रूप में उपयोग करने पर विचार कर सकते हैं और फिर [NSDictionary writeToFile: atomically:] का उपयोग करके उन्हें संपत्ति सूची फ़ाइलों में लिख सकते हैं। मेरा एक दोस्त शब्दकोशों को भगवान की डेटा संरचना (गाल में जीभ) के रूप में संदर्भित करना पसंद करता है।

यदि आपका डेटा आकार मामूली है तो इसके लिए कई फायदे हैं: मानव पठनीय, मानव लिखने योग्य, परिवर्तनीय।

+1

मॉडल ऑब्जेक्ट्स के रूप में एनएसडीयूज का उपयोग करके आप ऐप्पलस्क्रिप्ट समर्थन को लागू करने के लिए दर्द का कारण बनेंगे। प्रत्येक ऑब्जेक्ट को अपने आप को प्रस्तुत करने वाले शब्दकोश को उत्पन्न करने में सक्षम होना बेहतर है, और जेनरेट किए गए शब्दकोश से खुद को नया करने में सक्षम होना बेहतर है। –

0

मैं स्थानीय रूप से स्टोर करने के बजाय क्लाउड पर डेटा संग्रहीत करना शुरू कर दूंगा। अब आईपैड बाहर आ रहा है, अगर आपके ऐप का इस्तेमाल आईफोन और आईपैड पर भी किया जाता है। यदि आप क्लाउड पर डेटा स्टोर करते हैं, तो आईफोन ऐप और आईपैड दोनों एक ही डेटा का उपयोग कर सकते हैं। यदि आप स्थानीय रूप से स्टोर करते हैं, तो जाहिर है, आईफोन ऐप और आईपैड ऐप एक ही डेटा का उपयोग नहीं कर सकता है।

+0

मैक ओएस एक्स ऐप्स आईफोन/आईपॉड टच/आईपैड पर भी नहीं चल सकते हैं। कोको ऐप! = आईफोन ऐप। ;) – mipadi

+0

मिपाडी: जू पार्क इस संभावना को ध्यान में रखते हुए सुझाव दे सकता है कि प्रश्नकर्ता किसी दिन ऐप के आईफोन और/या आईपैड संस्करण को शुरू कर सकता है।मैं बादल में पूरी तरह से डेटा भंडारण का सुझाव नहीं दूंगा, हालांकि; बादलों में वाष्पीकरण का एक तरीका है। एक सिंक हब के रूप में मैक संस्करण का उपयोग करना (कम से कम क्लाउड के वैकल्पिक विकल्प के रूप में) बेहतर होगा। –

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