Я получаю сообщение об ошибке «Ошибка этапа SQLite: попытка записи базы данных только для чтения» при использовании этого кода для копирования базы данных:
-(void)createEditableCopyOfDatabaseIfNeeded
{
// Testing for existence
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath =
[documentsDirectory stringByAppendingPathComponent:@"Money.sqlite"];
success = [fileManager fileExistsAtPath:writableDBPath];
if (success)
return;
// The writable database does not exist, so copy the default to
// the appropriate location.
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath]
stringByAppendingPathComponent:@"Money.sqlite"];
success = [fileManager copyItemAtPath:defaultDBPath
toPath:writableDBPath
error:&error];
if(!success)
{
NSAssert1(0,@"Failed to create writable database file with Message : '%@'.",
[error localizedDescription]);
}
}
Я использую приведенный выше код в AppDelegate
и это:
NSString *writableDBPath =
[[NSBundle mainBundle] pathForResource:@"Money"
ofType:@"sqlite"];
В ViewController.m
Я использую http://th30z.netsons.org/2008/11/objective-c-sqlite-wrapper/ что я делаю не так?
Это происходит снова и снова ... Раньше все работало нормально, но снова проблема началась.