хранить данные NSobject в Nsuserdefaults

В моем модальном объекте есть два значения, которые я пытаюсь сохранить в NSUserDefaults. Это мой код

Файл интерфейса:

@interface collectionModel : NSObject <NSCoding> {
}


@property(nonatomic,retain) NSString *name;
@property(nonatomic,retain) NSString *author;

Файл реализации:

@implementation collectionModel
@synthesize name = _name;
@synthesize author = _author;


- (id)initWithCoder:(NSCoder *)aDecoder {

    if (self = [super init]) {
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.author = [aDecoder decodeObjectForKey:@"author"];
    }
    return self;
}

- (void)encodeWithCoder:(NSCoder *)aCoder {
    [aCoder encodeObject:_name forKey:@"name"];
    [aCoder encodeObject:_author forKey:@"author"];
}

ViewController.M

#import "collectionModel.h"

 parsedCollectionArr = [[NSMutableArray alloc] init];

 for (NSDictionary *obj in collectionBalk) {

          NSString * Name = [obj objectForKey:@"Name"];
          NSString * author = [obj objectForKey:@"author"];

          collectionModel *dataObj = [[collectionModel alloc] init];
          dataObj.name = Name;
          dataObj.author = author;
          [parsedCollectionArr addObject:dataObj];
     }
 NSLog(@"parsedCollectionArr count ---->>>> %d",23);

Здесь я хочу сохранить этот parsedCollectionArr в NSUserDefaults и извлечь из него. Кто-нибудь может мне помочь.


person Nagaraju Kamatham    schedule 19.09.2016    source источник
comment
Возможный дубликат Как сохранить NSMutablearray в NSUserDefaults   -  person Teja Nandamuri    schedule 19.09.2016
comment
Также, пожалуйста, обратитесь к stackoverflow.com /вопросы/2315948/   -  person Teja Nandamuri    schedule 19.09.2016
comment
Перейдите по предложенной ссылке @Teja Nandamuri   -  person Sailendra    schedule 19.09.2016
comment
@KuntalGajjar. Вы можете, с NSCoding.   -  person Larme    schedule 19.09.2016


Ответы (1)


попробуйте это .. Создайте класс, например "CollectionModelManager.h и .m"

//Для сохранения модели коллекции

+ (void)saveCollectionModel:(CollectionModel *) collectionModel 
{  
 NSData *encodedData = [NSKeyedArchiver archivedDataWithRootObject:collectionModel];
    NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
    [userDef setObject:encodedData forKey:kCollectionModelKey]; //here kCollectionModelKey is a static string
    [userDef synchronize];
}

//Для получения модели коллекции

+ (CollectionModel *)getCollectionModel 
{
    NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
    CollectionModel *collectionModel = nil;
    NSData *encodedData = [userDef objectForKey:kCollectionModelKey]; //Same static string use here kCollectionModelKey
    if (encodedData != nil) {
        collectionModel = [NSKeyedUnarchiver unarchiveObjectWithData:encodedData];
    }
    return collectionModel;
}
person user3833693    schedule 19.09.2016