2016-09-19 2 views
-1

В моем Модальном объекте есть два значения Я пытаюсь сохранить в NSUserDefaults. Это мой кодхранить данные NSobject в 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 и извлечь из него.может ли кто-нибудь мне помочь.

+0

Возможный дубликат из [Как сохранить NSMutablearray в NSUserDefaults] (http://stackoverflow.com/questions/19634426/how-to-save-nsmutablearray-in-nsuserdefaults) –

+0

Также ссылаются на http: // stackove rflow.com/questions/2315948/how-to-store-custom-objects-in-nsuserdefaults –

+0

Follow @Teja Nandamuri предложил ссылку –

ответ

0

попробовать это .. Создать класс как "CollectionModelManager.h и .m"

// Для спасительной CollectionModel

+ (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

+ (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; 
} 
Смежные вопросы