Мой очень простой ответ
Во-первых, мы должны реализовать encodeWithCoder и initWithCoder в NSObject.m и до того, что у меня есть 2 данные (имя пользователя и пароль) в примере NSObject класса.Чтобы я поставил this.You могу понять
- (void)encodeWithCoder:(NSCoder *)encoder
{
//Encode properties, other class variables, etc
[encoder encodeObject:@"Dev" forKey:@"username"];
[encoder encodeObject:@"[email protected]" forKey:@"password"];
}
- (id)initWithCoder:(NSCoder *)decoder
{
if((self = [super init]))
{
//decode properties, other class vars
userName = [decoder decodeObjectForKey:@"username"];
passWord = [decoder decodeObjectForKey:@"password"];
}
return self;
}
Тогда в ViewController.m
Для Спасите
NSObjectClass *className = [[NSObjectClass alloc]init];
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:className];
[currentDefaults setObject:data forKey:@"DATA"];
[currentDefaults synchronize];
Для Получить
NSData *data = [currentDefaults objectForKey:@"DATA"];
className = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Для Подробнее Пройтись Мой ANSWER
Вы можете сделать свой класс NSCoding податливыми и использовать 'NSKeyedArchiver', или перевод на JSON (и создать' initWithJSON: 'обычая init) и т. д. – Larme