1

大家好,我想存储 URL 的分类列表。这是一个互联网广播流媒体应用程序,因此我希望每个流派至少有三个链接:

  • 带有广告的免费流媒体 URL
  • 128 kbps 的优质流媒体 URL
  • 256 kbps 的优质流媒体 URL

所以每个流派都会有这三个 URL。

对于高级流,还有针对特定全球区域的“地理本地化”流 URL 或“镜像”。例如,如果我在美国,我可以选择可用镜像的最近位置,以获得更好的流媒体质量/可靠性。

尽管我经常怀疑,这些 URL 可以更改,因此我希望能够更新它们,这意味着存储不能只读。我不确切知道应该如何存储信息,更不用说存储在什么类型的存储中:sqlite db、XML 或属性列表。我对这一切都是新手,所以如果其中任何一个对这种情况很愚蠢,我很抱歉,呵呵。

至于结构,我也不确定如何实现。对于每个位置,我可能有单独的文件/数据库,无论我最终使用什么,或者我可以有一个类似的大文件/数据库:

  • 岩石
    • 洛杉矶
      • 免费流
      • 优质流 - 128kbps
      • 优质流 - 256kbps

但我认为数据库/文件会很快变得庞大。

我想我也可以为免费和高级流提供单独的文件/数据库,因为高级用户很可能只想收听高级流(但仍然可以选择 128kbps 或 256kbps 流,具体取决于它们的网络可靠性) . 然后我可以在设置中选择要显示哪些流;免费或高级。这应该减少尺寸。

稍后我想在表格视图和导航控制器中显示这些 URL。根视图将是流派的列表,通过深入每个流派,它将显示免费或付费流。位置(例如洛杉矶)将在设置中选择,并且不会出现在表格视图中。

我会很感激你们的建议。我尽量做到清晰和具体,如果我遗漏了什么,我很抱歉。我不是要代码,只是你的想法和建议是关于如何设计这个持久数据存储,以及存储它的内容,因为我是新手。

谢谢!

4

2 回答 2

1

还有一点需要考虑的是,为了与 OS 3.0 之前的设备兼容,Core Data (SQLite) 并不是一个真正的选择。

除了 Core Data 的(不)可用性之外,我不确定您需要将映射干净地存储到关系数据模型上的数据。我倾向于 plist 存储。考虑到您的需求,我认为这是最有意义的。

于 2009-06-22T20:23:24.350 回答
1

如果我理解你,你想要:

一个流派列表,每个包含一个位置列表,每个包含一个质量列表,每个包含一组数据(包括 URL)或只是一个 URL。无论哪种方式,您都可以将其作为属性列表来执行,并且它只是通过属性列表而不是数据库来获得您想要的位置的边界。

SQLite 在 iPhone 上,可以通过标准 C 函数 API 访问,但 Core Data 不是。SQLite 肯定会让你的数据库和查询有更多的结构。

无论哪种方式,您都可以为数据库包含某种种子 ID,然后查询在线服务器以仅接收差异,这将减少通过网络传输大型数据库的需要 - 但您需要确定到底有多大您的数据库在决定这是否值得之前。可能只需要简单地压缩 XML 文件,因为 XML 会压缩大量文件(可能压缩到其原始大小的 30% 左右)。

或者,您可能只真正确定了数据库中适合区域的部分。

于 2009-06-23T05:04:14.940 回答