有复制从包目录(只读)数据库文件,可写的? (如每个应用程序的文档目录?)。
当试图保存在设备中,你会得到像这样的sqlite错误?
SQLITE_READONLY 8 /* Attempt to write a readonly database */
编辑:
所有主束的文件是只读的,所以如果你需要修改一个/他们中的一些,你需要将文件是可写的一个位置复制。假设你已经调用了db mydb.sqlite,这里有一些将db复制到文档目录的代码(仅当它不存在时)。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSFileManager *fm = [NSFileManager defaultManager];
NSString *docPath = [docDirectory stringByAppendingPathComponent:@"mydb.sqlite"];
if (![fm fileExistsAtPath:docPath]) { // file does not exists, copy it
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"mydb" ofType:@"sqlite"];
NSError *error = nil;
BOOL res = [fm copyItemAtPath:bundlePath toPath:docPath error:&error];
if (!res) {
// do something with error
}
}
感谢您的回答朱利亚诺,不,我没有,我恐怕我真的不知道该怎么做? – PeterK 2011-06-06 09:39:33