जवाबों:
एनएसडॉरैट -> एनएसडाटा:
NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:myDictionary];
NSData -> NSDictionary:
NSDictionary *myDictionary = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:myData];
एनएसडॉरैट -> एनएसडाटा:
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:yourDictionary forKey:@"Some Key Value"];
[archiver finishEncoding];
[archiver release];
// Here, data holds the serialized version of your dictionary
// do what you need to do with it before you:
[data release];
NSData -> NS सहकर्मी
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDictionary *myDictionary = [[unarchiver decodeObjectForKey:@"Some Key Value"] retain];
[unarchiver finishDecoding];
[unarchiver release];
[data release];
आप एनएससी कोडिंग के अनुरूप किसी भी वर्ग के साथ कर सकते हैं।
NSJSONSerialization का उपयोग करें:
NSDictionary *dict;
NSData *dataFromDict = [NSJSONSerialization dataWithJSONObject:dict
options:NSJSONWritingPrettyPrinted
error:&error];
NSDictionary *dictFromData = [NSJSONSerialization JSONObjectWithData:dataFromDict
options:NSJSONReadingAllowFragments
error:&error];
नवीनतम रिटर्न id, इसलिए इसका एक अच्छा विचार है कि आपके द्वारा डाले जाने के बाद लौटी हुई वस्तु के प्रकार की जांच करें (यहां मैंने एनएसडॉर पर डाली)।
में स्विफ्ट 2 आप इस तरह से यह कर सकते हैं:
var dictionary: NSDictionary = ...
/* NSDictionary to NSData */
let data = NSKeyedArchiver.archivedDataWithRootObject(dictionary)
/* NSData to NSDictionary */
let unarchivedDictionary = NSKeyedUnarchiver.unarchiveObjectWithData(data!) as! NSDictionary
में स्विफ्ट 3 :
/* NSDictionary to NSData */
let data = NSKeyedArchiver.archivedData(withRootObject: dictionary)
/* NSData to NSDictionary */
let unarchivedDictionary = NSKeyedUnarchiver.unarchiveObject(with: data)
Any?टाइप का है। लेकिन इसमें से त्रुटि परिवर्तित होती दिखाई NSDictionaryदी NSData। इसलिए मैंने आपके कोड की कोशिश की। काम नहीं किया।
NSData से NS सहोदर
http://www.cocoanetics.com/2009/09/nsdictionary-from-nsdata/
NSData को एनएसडीआर
आप उसके लिए NSPropertyListSerialization वर्ग का उपयोग कर सकते हैं। इसकी विधि पर एक नजर:
+ (NSData *)dataFromPropertyList:(id)plist format:(NSPropertyListFormat)format
errorDescription:(NSString **)errorString
एक निर्दिष्ट प्रारूप में दी गई संपत्ति सूची में एक NSData वस्तु देता है।
कृपया इसे आजमाएं
NSError *error;
NSDictionary *responseJson = [NSJSONSerialization JSONObjectWithData:webData
options:NSJSONReadingMutableContainers
error:&error];
responseनहीं है responce। मैंने आपके लिए इसे सही किया।