मुझे कोर डेटा में एक क्षणिक संपत्ति स्थापित करने में समस्या हो रही है। जिस समस्या को मैं हल करने की कोशिश कर रहा हूं वह है: मेरे पास कोर डेटा का उपयोग करके सफलतापूर्वक संग्रहीत वस्तुओं का संग्रह है। यह संग्रह अनिवार्य रूप से केवल पढ़ने के लिए संग्रह है लेकिन रन-टाइम पर, मैं संग्रह में प्रत्येक आइटम के साथ एक और ऑब्जेक्ट (इस मामले में एक UIImage) को जोड़ना चाहता हूं। मुझे UIImages स्टोर करने की आवश्यकता नहीं है; यह पूरी तरह से एक रन-टाइम एसोसिएशन है। तो मुझे वास्तव में जो चाहिए वह संग्रह में प्रत्येक ऑब्जेक्ट में 'प्लेसहोल्डर' है जहां मैं बाद में यूआईएममेज को छोड़ सकता हूं।कोर डेटा और क्षणिक गुण
एक क्षणिक विशेषता सही बात और, इस के लिए की तरह लगता है, कोर डाटा संदर्भ डॉक्स ने मुझे बताया कि मैं डाटा मॉडल में एक "प्रकार अपरिभाषित के वैकल्पिक, क्षणिक विशेषता" जो मैंने किया है की स्थापना करना चाहिए:
आगे, यह मुझे बताता है कि मुझे कार्यान्वयन ऑब्जेक्ट में संबंधित संपत्ति को परिभाषित करने की आवश्यकता नहीं है, लेकिन मुझे कस्टम एक्सेसर & सेटर विधियों को लिखना होगा।
- (void)setDisplayImage:(UIImage *)anImage {
[self willChangeValueForKey:@"displayImage"];
[self setPrimitiveValue:anImage forKey:@"displayImage"];
[self didChangeValueForKey:@"displayImage"];
}
और: इस प्रकार मैं डॉक्स में उदाहरण के आधार पर इन तरीकों मॉडल किया है
- (UIImage *)displayImage {
[self willAccessValueForKey:@"displayImage"];
UIImage *anImage = [self primitiveDisplayImage];
[self didAccessValueForKey:@"displayImage"];
if (anImage == nil) {
NSData *displayImageData = [self displayImageData];
if (displayImageData != nil) {
anImage = [NSKeyedUnarchiver unarchiveObjectWithData:displayImageData];
[self setPrimitiveDisplayImage:anImage];
}
}
return anImage;
}
वहाँ भी एक आस्थगित "लिखने" विधि (willSave) है कि मैं सख्त के लिए लिखा है है पूर्णता हालांकि, उपरोक्त के रूप में, मैं कभी भी इन वस्तुओं को स्टोर करने के लिए कभी नहीं लिखूंगा।
मुझे जो समस्या मिल रही है वह आदिम डिस्प्ले इमेज और सेटप्रिमिट डिस्प्ले इमेज विधियों - (UIImage *) displayImage {। असल में, कंपाइलर इन दो विधियों पर चेतावनी फेंकता है क्योंकि "ऑब्जेक्ट एक्स 'primitiveDisplayImage' का जवाब नहीं दे सकता है।" आदि हालांकि, दस्तावेज़ों से मेरी समझ यह है कि ये आदिम एक्सेसर्स/सेटर्स स्वचालित रूप से बनाए जाते हैं - ऐसा प्रतीत नहीं होता है मामला बनो कोई भी व्यक्ति जो इस मुद्दे को हल करने में मेरी मदद कर सकता है? बहुत धन्यवाद