Я создал собственный объект "класс", который содержит данные для моего массива.
Примечание: "данные" - это NSMutableArray
- (IBAction)addNewTodo:(id)sender {
DataHolder *dataHolder = [[DataHolder alloc] init];
dataHolder.todo = _inputText.text;
dataHolder.priority = @"%d", prior;
dataHolder.date = [dateFormatter stringFromDate:[NSDate date]];
[data addObject:dataHolder];
NSLog(@"%@", [data objectAtIndex:0]);
[self saveInUserDefaults];
}
- (void) saveInUserDefaults{
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:data requiringSecureCoding:YES error:nil];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"data"];
[defaults synchronize];
- (void) retrieveUserDefaults{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
data = [NSKeyedUnarchiver unarchiveObjectWithData:[userDefaults objectForKey:@"data"]];
NSLog(@"%@", [data objectAtIndex:0]);
}
Класс, который содержит мои данные для массив.
#import "DataHolder.h"
@implementation DataHolder
@synthesize todo;
@synthesize date;
@synthesize priority;
@end
Итак, каждый раз, когда я запускаю метод «retrieveUserDefaults», приложение выводит:
... projlab [31828: 5746912] (null)
И вывод после добавления данных в массив:
... projlab [31828: 5746912]
Так, как я могу сохранить и получить массив объектов правильным способом?