Сохранение NSMutableArray в NSUserDefault дает ноль

#ios #nsmutablearray #nsuserdefaults

#iOS #nsmutablearray #nsuserdefaults

Вопрос:

Я уже пробовал это

Чтобы установить :

NSUserDefaults *UserDefaults = [NSUserDefaults standardUserDefaults];
[UserDefaults setObject:mutArr forKey:@»userInfo»];
[UserDefaults синхронизировать];

Чтобы получить :

NSMutableArray *retrieveArray = [[NSMutableArray alloc] init];
retrieveArray = [[[NSUserDefaults standardUserDefaults] arrayForKey:@»userInfo»] Изменяемая копия];

Кто-нибудь может сказать мне, где я ошибаюсь?
Спасибо.

Комментарии:

1. Вы уверены, что при сохранении массива mutArr не является пустым массивом?

2. Да, я проверил, он был пуст. Но теперь это приводит к сбою при [[NSUserDefaults standardUserDefaults] setObject:mutArr forKey:@»Key»];

3. я спрашиваю при сохранении данных в NSUserDefaults, содержит ли этот массив данные или пустой массив?

4. тогда это даст правильные данные, возможно, где-то еще данные по умолчанию пользователя обновляются пустым массивом после его проверки.

5. Это приводит к сбою с журналом: попытка установить объект, не являющийся списком свойств

Ответ №1:

Пожалуйста, попробуйте приведенный ниже код.

Для набора :

 NSMutableArray *arrCategoryListSet = [[NSMutableArray alloc] initWithObjects:object1, object2, nil];   
[[NSUserDefaults standardUserDefaults] setObject:arrCategoryListSet forKey:@"CategoryList"];
[[NSUserDefaults standardUserDefaults] synchronize];
  

Для получения:

 NSMutableArray *arrCategoryListGet = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"CategoryList"]];
  

или

 NSMutableArray *arrCategoryListGet = [[NSUserDefaults standardUserDefaults] objectForKey:@"CategoryList"];
  

Ответ №2:

Сохранить массив

 [[NSUserDefaults standardUserDefaults] setObject:youArray forKey:@"Key"];
  

Повторный массив

  NSArray *retArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"Array"];