在这里搜索并得到一些模糊的答案,所以我想我会重新解释这个问题以获得更清晰的答案 -
现在我有一个SQL Lite数据库,它读取/解析预格式化的.txt文件中的信息。当我打开应用程序时,iDevice解析信息会有轻微的“滞后”,然后获取iDevice。我只是想知道是否有任何方法可以直接在xCode中“保存”所有信息,因此没有延迟/获取时间?
谢谢。
答案 0 :(得分:0)
您可以做的是预先构建您的sqlite数据库,然后将其作为资源包含在您的应用程序中。由于此数据库位于您的应用程序包中,因此只能在您的设备上读取,因此您需要在应用程序文档区域中复制它。
我已成功在生产iPhone应用程序中使用类似以下代码的内容
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentFolderPath = [searchPaths objectAtIndex: 0];
NSString* dbFilePath = [documentFolderPath stringByAppendingPathComponent: DATABASE_FILE_NAME];
if(![[NSFileManager defaultManager] fileExistsAtPath: dbFilePath]) {
// copy the template database into the right place
NSError* error = nil;
[[NSFileManager defaultManager] copyItemAtPath: [[NSBundle mainBundle] pathForResource: @"template" ofType: @"db"] toPath: dbFilePath error: &error];
if(error) {
@throw [NSException exceptionWithName: @"DB Error" reason: [error localizedDescription] userInfo: nil];
}
}
int dbrc; // database return code
dbrc = sqlite3_open ([dbFilePath UTF8String], &db);
if(IS_SQL_ERROR(dbrc)) {
@throw [NSException exceptionWithName: @"DB Error" reason: NSLocalizedString(@"Could not open database", @"Database open failed") userInfo: nil];
}