如何处理设备中的数据库?

时间:2011-09-21 09:15:59

标签: iphone

我开发了一个应用程序。我使用了sqlite数据。当我在模拟器中运行时,数据保存在数据库中。当iam检索数据时没有问题。但是当iam在设备中运行时,进程被杀死在检索数据的时候。请告诉我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您应该在应用程序包中添加sqlite文件(空白或预先存在),让应用程序知道它的存在并将其复制到文档目录中:

 BOOL success;

NSArray*dirPath;
NSString*docDir;

dirPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docDir=[dirPath objectAtIndex:0];
databasePath=[docDir stringByAppendingPathComponent:@"yourDB.sqlite"];


NSFileManager*filemgr=[NSFileManager defaultManager];

success=[filemgr fileExistsAtPath:databasePath];

if(success)
{
    NSLog(@"Already Present");
}

NSString* bundlePath=[[NSBundle mainBundle]pathForResource:@"yourDB" ofType:@"sqlite"];
NSError*error;
success=[filemgr copyItemAtPath:bundlePath toPath:databasePath error:&error];

if(success)
{
    NSLog(@"Created Successfully");
}