#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"];