我使用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
及其属性(无论其数量是多少)。
答案 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;
}