diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPFavoritesController.m | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/SPFavoritesController.m b/Source/SPFavoritesController.m index 85f4e587..08df59c8 100644 --- a/Source/SPFavoritesController.m +++ b/Source/SPFavoritesController.m @@ -98,6 +98,7 @@ static SPFavoritesController *sharedFavoritesController = nil; NSString *favoritesFile = [dataPath stringByAppendingPathComponent:SPFavoritesDataFile]; NSString *favoritesBackupFile = [dataPath stringByAppendingPathComponent:[@"~" stringByAppendingString:SPFavoritesDataFile]]; + // If the favorites data file already exists, attempt to move it to keep as a backup if ([fileManager fileExistsAtPath:favoritesFile]) { [fileManager moveItemAtPath:favoritesFile toPath:favoritesBackupFile error:&error]; } @@ -107,6 +108,7 @@ static SPFavoritesController *sharedFavoritesController = nil; error = nil; + // We can't move it so try and delete it if (![fileManager removeItemAtPath:favoritesFile error:&error] && error) { NSLog(@"Unable to delete existing favorites data file during save. Something is wrong, permissions perhaps: %@", [error localizedDescription]); return; @@ -123,9 +125,11 @@ static SPFavoritesController *sharedFavoritesController = nil; if (error) { NSLog(@"Error writing favorites data. Restoring backup if available: %@", [error localizedDescription]); + // Restore the original data file [fileManager moveItemAtPath:favoritesBackupFile toPath:favoritesFile error:NULL]; } else { + // Remove the original backup [fileManager removeItemAtPath:favoritesBackupFile error:NULL]; } } @@ -173,6 +177,7 @@ static SPFavoritesController *sharedFavoritesController = nil; NSString *favoritesFile = [dataPath stringByAppendingPathComponent:SPFavoritesDataFile]; + // If the favorites data file already exists use it, otherwise create an empty one if ([fileManager fileExistsAtPath:favoritesFile]) { favorites = [[NSDictionary alloc] initWithContentsOfFile:favoritesFile]; } |