从webservice获取数据并在iphone上缓存

时间:2010-11-05 00:56:59

标签: iphone caching

我想访问网络服务以获取大量数据(例如产品列表/详细信息/搜索结果)并显示此内容。

此类操作是否有最佳实践? 在性能方面,有没有比在每个请求上检索,解析和显示文本数据更好的方法,并且可能在后台加载图像?有没有明智的缓存策略可以应用?

1 个答案:

答案 0 :(得分:1)

如果我从头开始做这样的事情,这就是我要做的事情:

  1. 让网站以XML格式发布所有数据。除了图片之外 - 只需要一个XML字段指定每张图片的URL。因此,举例来说,我说我正在做产品清单。

  2. 使用NSXMLParser来获取和解析XML数据。

  3. 使用单独的NSData dataWithContentsOfURL:调用以获取每个图像的内容,使用XML数据中的URL

  4. 使用CoreData将XML数据(和NSData图像)写入数据库表。向表中添加索引时间戳字段。

  5. 您现在可以使用timestamp字段在数据库中保留最新的“x”记录 - 如果需要,可以清除旧的记录。

  6. 使用数据库表的内容填充UITableView - 或者您要呈现的其他内容。

  7. 在UITableView中创建某种“next”,“prev”或“update”字段,以便从Web获取更多数据,如果您需要显示的数据多于缓存的数据 - 或者您希望更新缓存中的数据。