我的数组包含:
到NSUserDefaults
。
关于此的简短背景:
我有两个对象之间的核心数据关系。因此,实体A的任何对象都可以属于实体B中包含的类别或属于任何类别。我有一个搜索窗口,您可以查看特定类别和/或不属于任何类别的对象。这个类别我基本上都不会在我的过滤器数组中保存为特定的字符串。
但我总是得到错误:
尝试插入非属性列表对象。
由于我的自定义对象,这是我现在研究的内容。但是我还可以在这个数组中存储字符串并混合对象类型吗?我还考虑过为每个对象分配一个默认类别,但我认为它更干净,没有类别,只在我需要它的地方使用此字符串,在我的应用程序中使用过滤器。
答案 0 :(得分:0)
您需要为此目的使用NSEncode和Decode,请尝试按照以下步骤实现此目的
1 在模型的.m文件中
在您的模型类上添加编码解码,如下所示
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.id forKey:@"ID"];
[aCoder encodeObject:self.address_1 forKey:@"address_1"];
//All of your properties here
}
-(id)initWithCoder:(NSCoder *)aDecoder{
if(self = [super init])
{
self.id = [aDecoder decodeObjectForKey:@"id"];
self.address_1 = [aDecoder decodeObjectForKey:@"address_1"];
//All of your properties here
}
return self;
}
2 将其保存到NSDefaults时首先使用存档
[[NSUserDefaults standardUserDefaults]setObject:[NSKeyedArchiver archivedDataWithRootObject:info] forKey:kUserInfo];
3 获取对象时使用
[NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults]objectForKey:kUserInfo]]