NSStrings のリストを含む NSMutableArray のローカル ストレージにデータを永続化する際に問題があります。アプリの実行中に save メソッドと get メソッドの両方が機能しているように見えます。ただし、アプリを閉じて再起動すると、配列内のアイテムはなくなります。
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];