将对象保存到IOS中的NSDefaults

时间:2015-04-10 14:39:49

标签: ios objective-c

我使用NSDefaults来保存对象。

我想保存一个包含属性的对象,指向另一个从NSObject继承并包含NSString等属性的对象...

我该怎么办?

示例:

#import <Foundation/Foundation.h>
#import "user.h"

@interface dataManager : NSObject
@property (strong,nonatomic)user* user;
@end


@interface user : NSObject
@property (copy,nonatomic) NSString* userName;
@property (assign,nonatomic)int age;
@end


我想将dataManager保存到NSDefaults及其属性(无论其数量是多少)。

1 个答案:

答案 0 :(得分:0)

如果你想让它持久化 - 你的对象需要实现NSCoding协议:

例如&#34; user&#34; class添加这些函数,并在头文件中添加协议信息

·H

@interface user : NSObject <NSCoding>

的.m

- (void)encodeWithCoder:(NSCoder *)encoder {
    [encoder encodeObject:self.userName forKey:@"userName"];
    [encoder encodeInt:self.age forKey:@"age"];
}

- (id)initWithCoder:(NSCoder *)decoder {
    if((self = [super init])) {
        self.userName = [decoder decodeObjectForKey:@"userName"];
        self.age = [decoder decodeIntForKey:@"age"];
    }
    return self;
}