मुझे एक विकल्प का पता चला, बचाने से पहले, मैं 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;
}
किसी के पास बेहतर उपाय है?
सबको धन्यवाद।