2016-03-03 3 views
0

Я хотел бы удалить NSDictionary, который хранится в NSUserdefaults. Я пытался с этим:Удалить NSDictionary из NSUserdefaults

[NSUserDefaults removeObjectForKey:@"bookmarks"]; 

Но, все мои любимые удаляются

Как я могу удалить один единственный любимый?

я нашел тот же вопрос здесь - Remove object of NSUserDefault by tableview cell

спасибо всем

+0

, что ваш любимый? это ключ в словаре, который вы удалили? или это другой словарь? –

+0

его другой словарь – Seb78

ответ

6

Получить словарь закладок, создавая изменяемый копию, так что вы можете изменить его:

NSMutableDictionary *bookmarks = [[userDefaults objectForKey:@"bookmarks"] mutableCopy]; 

Remove тот, который вы хотите:

[bookmarks removeObjectForKey:@"Bookmark be gone"]; 

Поместите закладки обратно:

[userDefaults setObject:bookmarks forKey:@"bookmarks"]; 

и синхронизации:

[userDefaults synchronize]; 

EDIT После комментария от OP, это звучит, как это может быть в массиве, а не словарь. Принцип тот же:

Получить массив закладок, создавая изменяемую копию, так что вы можете изменить его:

NSMutableArray *bookmarks = [[userDefaults objectForKey:@"bookmarks"] mutableCopy]; 

Удалить тот, который вы хотите (найти индекс объекта, вероятно, нужно перебирать массив См this question).

[bookmarks removeObjectAtIndex:5]; 

Поместите закладки обратно:

[userDefaults setObject:bookmarks forKey:@"bookmarks"]; 

и синхронизация:

[userDefaults synchronize]; 
+0

благодарю вас за ответ. Но у меня нет ключа в моем словаре, и он не работает. Как я могу удалить указатель? – Seb78

+1

@ Seb78 Похоже, что это в массиве, а не в словаре? – trojanfoe

Смежные вопросы