SQLite数据库下载

时间:2012-04-19 10:39:33

标签: iphone ios

我正在尝试下载必须在应用中使用的数据库(SQLite)。在保存下载的数据(作为NSData)之前,我想检查下载的数据是否是SQLite数据库。我该怎么检查。

例如:

数据库的正确URL1是http://example.com/mydatabase.db

如果以某种方式输入的URL为http://example.com/mydatabase.bdx,但不存在,我仍会在NSData中收到一些数据。

NSData *dbfile = [NSData dataWithContentsOfURL:[NSURL URLWithString: @"http://example.com/mydatabase.db"]];

我肯定可以在保存文件并尝试打开后进行检查,如果无法打开则会出现问题。但是如果没有下载正确的数据,我想检查NSData而不需要保存文件。

如何在不保存的情况下查看?

2 个答案:

答案 0 :(得分:1)

下面的代码将帮助您检查扩展程序。

NSString *url = @"http://example.com/mydatabase.bdx";
if([url hasSuffix:@".db"])
NSData *dbfile = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

答案 1 :(得分:1)

通过the sqlite3 interface documentation查看,我找到的只有sqlite3_open()和朋友,它们都采用文件名,而不是一大块数据。

因此,如果没有运送您自己的自定义sqlite3库,我认为您将不得不保存已下载的NSData,如您所述 - 将其转储到临时位置,然后尝试打开它(可能与sqlite3_open(),但希望您使用FMDB或类似内容),如果失败,请断定数据无效。