0
我成功地將數據保存到plist(本例中爲書籤列表),但似乎無法弄清楚如何防止用戶保存兩次相同的數據。我正在使用「moveRowAtIndexPath」重新排列書籤。當列表中有重複項時,它會在排序過程中導致崩潰。這裏是我的代碼:保存到Plist時防止重複
- (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];
}
如果他們保存兩次會有什麼危害?此外,從代碼可讀性的角度來看,我認爲這是一個糟糕的主意,稱爲字典「數組」。 – rdelmar
我剛修改了我的帖子。當用戶在書籤頁面上編輯時更改列表順序時,會導致崩潰。感謝代碼建議。我會做出這樣的改變。 –
「更改列表順序」是什麼意思,並在崩潰時收到錯誤消息? – rdelmar