Что я могу использовать для копирования удаленной базы данных в локальный путь?
success = [FileManager copyItemAtURL:dbPath toPath:databasePath error: &error];
Очевидно, что вышеописанное не будет работать.Глядя на руководство, кажется, что вы можете скопировать путь к пути или URL к URL.Но я видел пример myapp: //path/to/documents/database.sql.Теперь я смущен.Может ли кто-нибудь указать мне правильное направление?
Это то, что я делаю сейчас ... но это не перезаписывает базу данных, или я делаю вещи в неправильном порядке.Файл тоже всего пару килобайт.
- (void)createDB {
BOOL success;
NSError *error;
NSData *fetchedData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.dot.com/book/book.sqlite"]];
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"book.sqlite"];
[fetchedData writeToFile:filePath atomically:YES];
NSLog(@"%@", filePath);
NSFileManager *FileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *databasePath = [documentsDirectory stringByAppendingString:@"book.sqlite"];
success = [FileManager fileExistsAtPath:databasePath];
if(success)return;
NSString *dbPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"book.sqlite"];
success = [FileManager copyItemAtPath:dbPath toPath:databasePath error: &error];
if(!success)
NSAssert1(0, @"Failed to copy database. Error: %@", [error localizedDescription]);
}