जब जब स्विफ्ट का उपयोग कर संग्रह से निकालने की कोशिश कर रहा निम्न अपवाद हो रही है डिकोड नहीं कर सकते हैं:NSKeyedUnarchiver वर्ग की वस्तु NSKnownKeysDictionary1
न आया हुआ अपवाद 'NSInvalidUnarchiveOperationException', कारण की वजह से एप्लिकेशन समाप्त: '*** - [NSKeyedUnarchiver decodeObjectForKey:]: कुंजी (NS.objects) के लिए कक्षा (NSKnownKeysDictionary1) की वस्तु को डीकोड नहीं कर सकता; कक्षा को स्रोत कोड या एक लाइब्रेरी में परिभाषित किया जा सकता है जो '
संदर्भ नहीं है: मैं "साझा लिंक" एक्सटेंशन बना रहा हूं। मेरे मुख्य ऐप में (उद्देश्य सी में लिखा गया) मैं MMWormhole का उपयोग कर लिंक के बारे में जानकारी के साथ शब्दकोशों की एक सरणी लिखता हूं।
NSFetchRequest* bookmarkFetch = [NSFetchRequest fetchRequestWithEntityName:@"XX"];
bookmarkFetch.propertiesToFetch = @[
@"name", @"text", @"date", @"url"
];
bookmarkFetch.resultType = NSDictionaryResultType;
NSArray* bookmarks = [moc executeFetchRequest:bookmarkFetch error:NULL];
[wormhole passMessageObject:bookmarks identifier:@"XXX"];
सरणी में मान एनएसएसटींग्स और एनएसडीएटी हैं।
MMWormhole की आंत में आप मिल:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:messageObject];
messageObject किसी भी मध्यवर्ती प्रसंस्करण के बिना केवल बुकमार्क्स सरणी है।
विस्तार में मेरे पास है:
let wormhole = MMWormhole(applicationGroupIdentifier: "group.XX", optionalDirectory:nil)
let bookmarks = wormhole.messageWithIdentifier("XXX") as? Array<Dictionary<String,AnyObject>>
messageWithIdentifier: यह अंततः बुला समाप्त होता है:
id messageObject = [NSKeyedUnarchiver unarchiveObjectWithData:data];
सरणी सही ढंग से एप्लिकेशन समूह फ़ोल्डर में बाहर लिखा है - मैं इसे का उपयोग कर पढ़ सकते हैं एक अन्य एक्सटेंशन, उद्देश्य सी
में लिखा गया यह अपवाद तब दिखाई देता है जब मैं सिम्युलेटर में चलता हूं। कोड 3212 बिट डिवाइस (आईफोन 5 और आईपैड 3) पर चलने पर सही ढंग से काम करने के लिए दिखाई देता है। वर्तमान में परीक्षण करने के लिए मेरे पास 64-बिट डिवाइस नहीं है।
मुझे लगता है कि मुझे import
या एक ढांचा याद आ रही है, लेकिन कौन सा एक है?
क्या पर 'डेटा' का स्वरूप है बिंदु 'NSKetedUnarchiver' कहा जाता है? क्या यह संभव है कि कोड में क्लास या क्लास स्ट्रक्चर बदल गया है क्योंकि पहले फाइल सिस्टम में सहेजा जा रहा है? व्युत्पन्न डेटा/कैश की सफाई आपको बता सकती है कि यह समस्या है या नहीं। – ColinMasters
यह सिर्फ 'बुकमार्क्स' एनएसएआरएआरई को सीधे NSKeyedArchiver तक पास करता है। मैंने उस कोड के साथ अपना प्रश्न अपडेट कर लिया है। –