我在本地存储中为包含 NSString 列表的 NSMutableArray 保留数据时遇到问题。当应用程序运行时,我有一个保存方法和一个获取方法似乎都可以工作。但是,一旦我关闭应用程序并重新启动,数组中的项目就消失了。
NSMutableArray*ImageTags;
获取数据
-(NSMutableArray*)GetDataNSMutableArray:(NSString*)ItemName
{
NSMutableArray *GetData = [[NSMutableArray alloc] init];
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefaults objectForKey:ItemName];
if (dataRepresentingSavedArray != nil)
{
NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
if (oldSavedArray != nil)
GetData = [[NSMutableArray alloc] initWithArray:oldSavedArray];
else
GetData = [[NSMutableArray alloc] init];
}
return GetData;
}
保存数据
-(void)SaveDataNSMutableArray:(NSString*)ItemName:(NSMutableArray*)Data
{
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:Data] forKey:ItemName];
}
如何添加项目
[ImageTags addObject:Control.titleLabel.text]
如何保存数组
[super SaveDataNSMutableArray:CVC_ImageURL:ImageTags];
如何检索数组
ImageTags = [super GetDataNSMutableArray:CVC_ImageURL];