कोर डेटा इकाइयां NSManagedObject
या NSManagedObject
के उप-वर्ग के उदाहरणों से मेल खाते हैं, इसलिए आप सीधे यूआरएल अनुरोधों को सहेज नहीं सकते हैं। आप क्या कर सकते हैं SavedRequest
जैसे कुछ नामक एक इकाई बनाएं जिसमें यूआरएल अनुरोध का प्रतिनिधित्व करने वाली संपत्ति है - और शायद अनुरोध के बारे में कुछ अन्य विवरण (जो भी अन्य जानकारी आपको चाहिए - तिथि, शायद?)।
के बाद से NSURLRequest
NSCoding
के अनुरूप है, तो आप इस संपत्ति कोर डाटा "बदला जाने वाला" प्रकार का उपयोग कर बना सकेगी। कोर डेटा NSCoding
का उपयोग NSData
से स्वचालित रूप से/से कनवर्ट करने के लिए करेगा। आप संपत्ति के लिए NSURLRequest
असाइन करेंगे और उन्हें वापस पढ़ेंगे, और कोर डेटा उन्हें NSData
के रूप में सहेज देगा।
हालांकि आपका विवरण दिया गया है, कोर डेटा समझ में नहीं आता है। ऐसा लगता है कि आप बस यूआरएल अनुरोधों की एक सूची को सहेजना चाहते हैं और बाद में इसे वापस पढ़ना चाहते हैं, और अतिरिक्त डेटा कोर डेटा प्रदान करने की आवश्यकता नहीं है। अपने NSURLRequest
ऑब्जेक्ट को सरणी में रखना आसान होगा और उसके बाद उस सरणी को फ़ाइल में या उपयोगकर्ता डिफ़ॉल्ट पर सहेजें। आप NSData
से अपने/में कनवर्ट करेंगे, लेकिन चूंकि आप NSCoding
का उपयोग कर सकते हैं जो आसान है। वापस
NSArray *savedRequests = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
का उपयोग कर
BOOL success = [NSKeyedArchiver archiveRootObject:myArray toFile:filePath];
आप सरणी मिल चाहते हैं:
सरणी आप कुछ इस तरह करते हैं चाहते हैं बचाने के लिए, एक सरणी संभालने myArray
युक्त यूआरएल अनुरोध और filePath
में एक मार्ग कहा जाता है
स्रोत
2017-01-23 18:11:17
आप कोर डेटा में सीधे 'NSURLRequest' स्टोर नहीं कर सकते हैं। आप केवल 'NSManagedObject' उदाहरणों को स्टोर कर सकते हैं। आप एक ऐसी इकाई बना सकते हैं जो आपको अनुरोध को फिर से बनाने के लिए आवश्यक जानकारी संग्रहीत करने की अनुमति दे। – Paulw11
'NSURLRequest'' एनएस (सुरक्षित) कोडिंग 'अनुपालन है, इसलिए इसका अनुवाद' एनएसडीटा 'में किया जाना चाहिए। यह एक संभावना है। – Larme
@ लार्मे आप कह रहे हैं कि हमें NSURL अनुरोध को NSData प्रकार में परिवर्तित करने की आवश्यकता है। सही बात? अगर यह डीबी में एनएसडीएटा के रूप में सहेजा गया है तो हम कैसे जानते हैं कि सर्वर पर कौन सा अनुरोध भेजा जाता है। क्या हमें एनएसडीटा को डीकोड करने और सर्वर पर भेजने की आवश्यकता है? –