2010-06-10 12 views
5

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

पढ़ना एप्पल के दस्तावेज और दिन मैं निम्नलिखित निष्कर्ष पर पहुंचा लिए googling: - उपयोग 1 लगातार दुकान विन्यास समन्वयक

  • उपयोग छवि संस्थाओं स्टोर करने के लिए - 1 डेटामॉडल कि सभी संस्थाओं का वर्णन शामिल बनाएं अन्य इकाइयों की तुलना में एक अलग फ़ाइल (स्क्लाइट) में (here देखें)

  • और, क्योंकि कोर डेटा एक लगातार स्टोर में उदाहरणों से संबंधों का समर्थन नहीं करता है, जो कि एक और लगातार स्टोर में उदाहरण देता है, हम ई "लाई गई गुण" कमजोर, एक तरह से रिश्तों

विन्यास का उपयोग बनाने के लिए बिल्कुल स्पष्ट है: डेटा नमूना बनानेवाला का उपयोग कर संस्था के लिए एक विन्यास निर्दिष्ट करेंगे और जो विन्यास जब समन्वयक के एक लगातार दुकान जोड़ने का उपयोग करने की घोषणा । मेरे मामले में, मैंने समन्वयक को स्टोर में जोड़ा।

लेकिन यहां समस्या है: जब आते हैं, तो एक स्टोर से 'उपयोगकर्ता' ऑब्जेक्ट्स कहें, मैं उस उपयोगकर्ता से जुड़े छवियों को लोड करने के लिए fetched गुणों का उपयोग कैसे करूं (और उन्हें उपयोगकर्ता ऑब्जेक्ट को असाइन करें)?

क्या मुझे उपयोगकर्ता ऑब्जेक्ट में 'छवियों' के लिए कस्टम एक्सेसर विधि लिखनी है? कैसे (और कहां) प्राप्त संपत्ति के लिए पूर्वानुमान निर्दिष्ट करने के लिए?

मुझे विश्वास था कि इसमें एक ट्यूटोरियल या उदाहरण होना चाहिए (जैसा कि स्पष्ट रूप से ऐप्पल ऐसा करने का सुझाव देता है)। लेकिन अब तक कोई भाग्य नहीं है।

कोई विचार?

उम्मीद है कि हम इस विषय पर चर्चा शुरू कर सकते हैं। मुझे यकीन है कि इसे हल करने के लिए अन्य (अधिक चालाक) तरीके हैं ...

उत्तर

1

मुझे यकीन नहीं है कि डिस्क स्थान के बारे में आपका दावा सही है। सबूत के बिना अपने ऐप से परीक्षण के सबूत के बिना, मैं सरल, एक स्टोर, समाधान के साथ रहूंगा। उस ने कहा ...

आपको उपयोगकर्ता वर्ग में छवि (छवियों) की कुछ पहचान विशेषता को स्टोर करने की आवश्यकता है। मैनेजर ऑब्जेक्ट आईडी स्टोर करने के लिए मैं एक परिवर्तनीय संपत्ति का उपयोग करूंगा। आप डेटा मॉडलर में एक प्राप्त संपत्ति जोड़ते हैं, और वहां भी भविष्यवाणी निर्दिष्ट करते हैं।

1

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

यहां बीएलओबी अनुभाग देखें।

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdPerformance.html

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