【发布时间】:2012-04-19 10:39:32
【问题描述】:
我正在尝试下载必须在应用程序中使用的数据库 (SQLite)。在保存下载的数据(以 NSData 形式提供)之前,我想检查下载的数据是否是 SQLite 数据库。我该如何检查。
例如:
数据库的正确URLl是http://example.com/mydatabase.db
如果 URL 以某种方式输入为 http://example.com/mydatabase.bdx,但它不存在,我仍然会在 NSData 中收到一些数据。
NSData *dbfile = [NSData dataWithContentsOfURL:[NSURL URLWithString: @"http://example.com/mydatabase.db"]];
我当然可以在保存文件并尝试打开后进行检查,如果无法打开,则说明有问题。但是如果没有下载正确的数据,我想签入 NSData 而无需保存文件。
如何在不保存的情况下查看?
【问题讨论】:
-
使用 isEqualToString 比较 url 字符串
-
这不仅仅是关于正确或不正确的网址。因为如果有一天数据库名称发生了变化,那么您仍然会在 NSData 中收到一些东西。我想验证下载的正确文件“mydatabase.db”或 NSData 的内容(如果它是 sqlite db)。
-
查看.. 检查文件名是否正确?应该有一些比较的基础。 eg.你想检查文件的扩展名(.db->正确或.bdx->不正确)吗?如果你能告诉我你决定文件是否正确的依据;那我可以帮你一点..!
-
是的..如果文件扩展名是.db并且文件的大小(将被固定)那么我可以认为它是正确的,否则不是。
-
因为我不知道如何检查 NSData 是否包含哪种类型的数据。如果我需要将 NSData 保存为文件,那么这是替代解决方案。如果它下载了正确的数据,我想检查 NSData 变量。因为 NSData 还可以下载 .html(如果 url 错误)和 .db 以防 url 正确。