मुझे एक विकल्प का पता चला, बचाने से पहले, मैं NSArrayउपयोग करते हुए रूट ऑब्जेक्ट ( ऑब्जेक्ट) को एनकोड करता हूं NSKeyedArchiver, जो समाप्त होता है NSData। तब UserDefaults का उपयोग करें को सहेजें NSData।
जब मुझे डेटा की आवश्यकता होती है, तो मैं इसे पढ़ता हूं NSData, और ऑब्जेक्ट में वापस NSKeyedUnarchiverबदलने के लिए उपयोग करता हूं NSData।
यह थोड़ा बोझिल है, क्योंकि मुझे NSDataहर समय / से कन्वर्ट करने की आवश्यकता है , लेकिन यह सिर्फ काम करता है।
यहाँ प्रति अनुरोध एक उदाहरण है:
सहेजें:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *arr = ... ; // set value
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arr];
[defaults setObject:data forKey:@"theKey"];
[defaults synchronize];
भार:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:@"theKey"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data];
सरणी में तत्व लागू होता है
@interface CommentItem : NSObject<NSCoding> {
NSString *value;
}
फिर के कार्यान्वयन में CommentItem, दो तरीके प्रदान करता है:
-(void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:value forKey:@"Value"];
}
-(id)initWithCoder:(NSCoder *)decoder
{
self.value = [decoder decodeObjectForKey:@"Value"];
return self;
}
किसी के पास बेहतर उपाय है?
सबको धन्यवाद।