मैं एक विधि (writeToFile) का उपयोग करना चाहूंगा जो केवल NSDictionary के लिए NSMutableDictionary ऑब्जेक्ट पर उपलब्ध है। तो, मैं इस NSMutableDictionary ऑब्जेक्ट को NSDictionary में कैसे परिवर्तित करूं?मैं NSMutableDictionary पर writeToFile विधि का उपयोग कैसे करूं?
उत्तर
एनएसएमयूटेबल डिक्शनरी एनएस डिक्शनरी से विरासत में है। तो, लिखें कक्षाएं दोनों वर्गों के लिए उपलब्ध होनी चाहिए।
एनएसएमयूटेबल डिक्शनरी एनएस डिक्शनरी का उप-वर्ग है, इसलिए आपके ऑब्जेक्ट के लिए लिखने के लिए कोई भी कास्टिंग या रूपांतरण किए बिना टाइप टूफाइल विधि उपलब्ध होनी चाहिए।
जैसा कि पहले ही यहाँ पर चर्चा की:
How to save a NSMutableDictionary into a file in documents?
आप इसे बदलने की आवश्यकता नहीं है।
लेकिन क्या तुम सच में, बस NSDictionary
पर अपने NSMutableDictionary
या dictionaryWithDictionary:
पद्धति पर copy
विधि का उपयोग करना चाहते हैं। दोनों NSMutableDictionary
से NSDictionary
प्रदान करते हैं।
एक एनएसएमयूटेबल डिक्शनरी एक एनएस डिक्शनरी है क्योंकि यह उप-वर्ग है। आम तौर पर इसके सुपरक्लास के उप-वर्ग के संबंध को कहा जाता है: "एक है"।
सही मायने में NSMutableDictionary से NSDictionary करने के लिए रूपांतरण की तलाश में यहाँ आने वाले लोगों के लिए:
NSMutableDictionary *mutableDict = [[[NSDictionary alloc] initWithObjectsAndKeys:
@"value", @"key"] mutableCopy];
NSDictionary *dict = [NSDictionary dictionaryWithDictionary:mutableDict]; //there you have it
वास्तविक सवाल शीर्षक और नहीं सामग्री के समाधान के लिए (के बाद से मैं इस प्रश्न के लिए खोज) आप वास्तव में प्राप्त करने के लिए copyWithZone:
पर भरोसा कर सकते एक अपरिवर्तनीय शब्दकोश के लिए नीचे।
NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc] init];
mutableDict[@"key"] = @"value";
NSDictionary *immutableDict = [mutableDict copy];