2009-04-15 22 views
5

में फ़ाइल करने के लिए एनएसएमयूटेबलएरे लिखने में समस्या एक असली शुरुआती प्रश्न। मेरे पास एक NSView सबक्लास है जिसमें मैं NSValues ​​युक्त एनएसएमयूटेबलएरे बनाता हूं। जब मैं लेखेटाइल का उपयोग कर फ़ाइल में सरणी लिखना चाहता हूं: atomatically: फ़ाइल बनाई गई है लेकिन इसमें NSValues ​​में से कोई भी नहीं है जिसमें म्यूटेबल सरणी शामिल है। क्या कोई जानता है कि मैं इस म्यूटेबल सरणी को फ़ाइल में सफलतापूर्वक कैसे लिख सकता हूं?कोको

धन्यवाद

उत्तर

15

NSValues ​​एक plist में सहेजा नहीं जा सकता (जो क्या writeToFile: atomically: करता है)। आपके द्वारा सहेजे जा सकने वाले मानों के लिए here पर एक नज़र डालें। (एनएसएनंबर एक प्रकार का NSValue है जिसे आप सहेज सकते हैं, लेकिन अन्य NSValues ​​विफल हो जाएंगे।)

यदि आप NSValues ​​के साथ अपनी सरणी को सहेजना चाहते हैं, तो आप लिखने के बजाय archiving का उपयोग कर सकते हैं ToFile: atomically:। NSArray और NSValue दोनों समर्थन संग्रह, इसलिए आप सरणी को एक संग्रह में परिवर्तित करते हैं और उस डेटा को फ़ाइल में सहेजते हैं। कोड इस तरह दिखता है (यह NSValues ​​रूप में अच्छी तरह से शामिल होंगे।):

[NSKeyedArchiver archiveRootObject:myArray toFile:@"myPath"]; 

इसे लोड करने के लिए, बस का उपयोग करें:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"]; 
+0

मैं NSArchiver और NSUnarchiver बजाय प्रयोग किया है और यह पूरी तरह से काम करता है। धन्यवाद –

+3

आपका स्वागत है। ध्यान दें कि NSKeyed [Un] Archiver को आजकल एनएस [अन] आर्काइवर पर प्राथमिकता दी जाती है। –