Эй, ребята,
У меня есть этот список:
<plist version="1.0">
<dict>
<key>Rows</key>
<array>
<dict>
<key>FavTitle</key>
<string>Book1</string>
<key>Favourited</key>
<string>duh</string>
<key>SaveName</key>
<string>book1.pdf</string>
</dict>
<dict>
<key>FavTitle</key>
<string>Book2</string>
<key>Favourited</key>
<string>duh</string>
<key>SaveName</key>
<string>book2.pdf</string>
</dict>
</array>
</dict>
</plist>
, который заполняет мой UITableView следующим образом:
cell.text = [dictionary objectForKey:@"FavTitle"];
(да, да, это устарело), и когда ячейка выбрана, объекты моего словаря перемещаются в мое подробное представление (например, для установки заголовка и URL-адреса UIWebView) примерно так:
NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
dvController.selectedSaveName = [dictionary objectForKey:@"SaveName"];
dvController.selectedFavTitle = [dictionary objectForKey:@"FavTitle"];
dvController.selectedFavourited = [dictionary objectForKey:@"Favourited"];
[dvController setHidesBottomBarWhenPushed:YES];
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
Все отлично, и я могу добавить в этот массив, но как мне взять из него текущий загруженный словарь? Это не работает:
NSString *documentsDirectory = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents/"]];
NSString *writablePath = [documentsDirectory stringByAppendingPathComponent:@"Favourites.plist"];
NSMutableDictionary *rootDict = [[NSMutableDictionary alloc] initWithContentsOfFile:writablePath];
NSMutableDictionary *thisFav = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"duh", @"Favourited",
selectedSaveName, @"SaveName",
selectedFavTitle, @"FavTitle",
nil];
[[rootDict objectForKey:@"Rows"] removeObject:thisFav];
[rootDict writeToFile:writablePath atomically: YES];
Как я могу удалить запись со строкой 'Book2'? Последний опубликованный фрагмент не работает! Спасибо, ребята!