আমি একটি বিকল্প খুঁজে পেয়েছি, সংরক্ষণের আগে, আমি NSArrayব্যবহার করে মূল বস্তু ( বস্তু) এনকোড করেছি NSKeyedArchiver, যা শেষ হয় NSData। তারপরে ব্যবহারকারীর ডেফল্টগুলি সংরক্ষণ করুন 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;
}
এর চেয়ে ভাল সমাধান কারও আছে?
ধন্যবাদ সবাইকে.