2012-02-03 1 views
0

я должен загрузить базу данных и заменить существующий в песочнице: Вот это предположительный способ сделать это:IOS загрузить SQLite базы данных и заменить существующий

DBHelpers *help=[[DBHelpers alloc] init]; 


    NSString *targetPath=[[help DocumentsDirectory] stringByAppendingPathComponent:DATABASE_NAME]; 


    NSLog(@"Target path: %@", targetPath); 
    NSFileManager *fileManager=[NSFileManager defaultManager]; 

    //if([fileManager fileExistsAtPath:targetPath]) 
    //{ 
     // NSLog(@"Exists"); 
     // return; 
    } 
    NSString *sourcePath=[help PathForResource:DATABASE_NAME]; 
    NSLog(@"SourcePath path: %@", sourcePath); 
    NSError *error; 
    NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"www.hello.com/mydb.sqlite"]]; 
    [data writeToFile:targetPath atomically:NO]; 

// [fileManager copyItemAtPath:sourcePath toPath:targetPath error:&error]; 
    NSLog(@"Error %@", error); 

ответ

5

Рассмотрим следующие шаги:

NSData *fetchedData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.myserver.com/files/DBName.sqlite"]]]; 
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDire ctory, NSUserDomainMask, YES) lastObject]; 
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"DBName.sqlite"]; 
[fetchedData writeToFile:filePath atomically:YES]; 

из iphonedevsdk forum нить.

+0

Это больше не работает. Я делаю по существу то же самое в [этом вопросе] (http://stackoverflow.com/questions/16150196/updating-sqlite-database-without-xml), но я получаю сообщение о том, что база данных я когда я перезапускаю приложение, загрузка «не является базой данных SQLite». – GeneralMike

Смежные вопросы