2012-07-12 7 views
8

मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जहां उपयोगकर्ता अपनी उंगली से स्क्रीन पर आकर्षित करने में सक्षम है। मैं इसके लिए UIBezierPath का उपयोग कर रहा हूँ। मुझे इस डेटा को जारी रखने की आवश्यकता है जो एक एनएसएआरएआरई है जिसमें कई बेजियरपाथ ऑब्जेक्ट्स हैं। इस के बारे में जाने के लिए सबसे अच्छा तरीका क्या है? कोर्डटा में स्टोर करें, एनएसडीटा का उपयोग कर फाइल में स्टोर करें? बहुत आभारी।कोर डेटा के साथ UIBezierPath दृढ़ता

उत्तर

12

क्या आप कई ऑब्जेक्ट्स स्टोर करना चाहते हैं? क्या आपको कुछ फ़िल्टर या ऑर्डरिंग के आधार पर उन्हें लाने में सक्षम होना चाहिए? मैं डेटा डेटा पैकिंग/अनपॅक करने में स्वयं को एक सभ्य काम बचाने के लिए कोर डेटा का उपयोग करने की सलाह देता हूं। फ़ाइल में इसे स्टोर करने का वास्तव में कोई कारण नहीं है।

संपादित करें:

के रूप में अन्य जवाब में कहा, तुम सिर्फ यह NSData को संग्रहीत करें। UIBezierPath वर्ग NSCoding प्रोटोकॉल का पालन करता है तो आप कुछ इस तरह यह संग्रह करने के लिए कर सकते हैं:

NSData *bezierData = [NSKeyedArchiver archivedDataWithRootObject:bezierPath]; 

आप कोर डाटा में है कि NSData वस्तु बच सकते हैं।

संग्रह को डिकोड करने के लिए, यह सोचते हैं कि हम एक bezierData NSData वस्तु है, तो आप की तरह कुछ कर सकते हैं:

UIBezierPath *bezierPath = [NSKeyedUnarchiver unarchiveObjectWithData:bezierData]; 
+0

कैसे आप CoreData में एक UIBesierPath जारी रहती हैं? –

+0

मेरा जवाब अपडेट कर रहा है। – Dima

1

आर्काइव NSData करने UIBezierPath, और CoreData में टाइप NSData की एक विशेषता के रूप में संग्रहीत। यदि आप इसे एक परिवर्तनीय विशेषता बनाते हैं तो आपके पास एक आसान एपीआई हो सकती है।

यह करना बहुत आसान है, खासतौर से उन वर्गों के लिए जो पहले ही संग्रह का समर्थन करते हैं।

अधिक जानकारी के लिए इस दस्तावेज़ को देखें।

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdNSAttributes.html