データをplist(この場合はブックマークリスト)に正常に保存できましたが、ユーザーが同じデータを2回保存するのを防ぐ方法がわからないようです。「moveRowAtIndexPath」を使用してブックマークを並べ替えています。リストに重複があると、ソート中にクラッシュが発生します。これが私のコードです:
- (IBAction)addBookmarkButtonClicked:(id)sender {
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Bookmarks.plist"];
NSMutableArray *bookmarksArray = [NSMutableArray arrayWithContentsOfFile:plistPath];
if (nil == bookmarksArray) {
bookmarksArray = [[NSMutableArray alloc] initWithCapacity:0];
}
NSMutableDictionary *array = [[NSMutableDictionary alloc]init];
[array setObject:gameName.text.self forKey:@"gameName"];
[array setObject:gameRating.text.self forKey:@"gameRating"];
[bookmarksArray addObject:array];
[bookmarksArray writeToFile:plistPath atomically: TRUE];
}