NSUserDefault для NSArray - PullRequest
       8

NSUserDefault для NSArray

0 голосов
/ 08 марта 2012

Записано значение 2 метки в NSUserDefault, с помощью NSMutableArray.

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

// Add a bookmark
NSMutableDictionary *bookmark = [NSMutableDictionary new];
[bookmark setValue:author.text forKey:@"author"];
[bookmark setValue:book.text forKey:@"book"];
[bookmarks addObject:bookmark];

// Save your (updated) bookmarks
[userDefaults setObject:bookmarks forKey:@"bookmarks"];
[userDefaults synchronize];

Теперь моя проблема в том, как извлечь значения NSUserDefault Trought NSArray?

 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
 self.dataArray = [prefs arrayForKey:@"bookmarks"];

 NSString *author =  ?? 
 NSString *book =  ??

Ответы [ 3 ]

1 голос
/ 08 марта 2012

В массиве данных вы можете хранить множество закладок. Эти методы могут регистрировать все закладки.

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];  
self.dataArray = [prefs objectForKey:@"bookmarks"]; 

for(int i=0;i<[dataArray count];i++){
    NSDictionary *dic = [dataArray objectAtIndex:i];
    NSLog(@"%@",dic);
    NSString * author = [dic objectForKey: @"author"];
    NSString * book = [dic objectForKey: @"book"];  
}
1 голос
/ 08 марта 2012
NSString * author = [self.dataArray objectForKey: @"author"];
NSString * book = [self.dataArray objectForKey: @"book"];

Это предполагает , что вы успешно сохранили массив и успешно перезагрузили массив из NSUserDefaults. Вы действительно должны сделать некоторую проверку ошибок в вашем коде.

0 голосов
/ 08 марта 2012

вы вставили массив со словарем.вы можете получить его, используя

self.dataArray = [prefs arrayForKey:@"bookmarks"];
 NSString *author =  [self.dataArray objectAtIndex:0] objectForKey:@"author"]; 
 NSString *book =   [self.dataArray objectAtIndex:0] objectForKey:@"book"];

Но лучше хранить словарь непосредственно по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...