在Iphone应用程序上从互联网更新tableview

时间:2012-10-09 23:23:39

标签: iphone ios5

我正在使用xcode上的故事板进行iphone应用程序,并且在我的一个tableviews上我想显示英语高级联赛表,我将从文件或数据库加载到表视图。我的问题是我如何将这张桌子连接到互联网上,以便它们可以在每周播放后更新团队位置?这个动作叫做RSS feed还是ftp push?有些人正在使用Json和数据库,但这对我来说太困惑了,因为我在这个领域很新。我想知道人们的想法,并且会对你的答案感到满意。提前致谢!斯坦

1 个答案:

答案 0 :(得分:2)

如果您在iOS上使用Web服务,JSON很容易且无处不在。它还使您更容易以表格形式显示结果。

我会考虑将团队定义为核心数据对象。您可能希望为Division和Team制作对象(如果术语有误,请不要对EPL了解很多)以允许团队降级或升级。在每个分部中,您将拥有一个团队关系,因此您只需从核心数据中获取Division对象,然后获得所有团队的NSSet,即可显示任何分区的梯形图。

然后您获取有关团队的信息。可能您会收到一个包含每个团队信息的JSON Feed。您可以使用NSJSONSerialization(内置于iOS)解析收到的数据并将其存储在Core Data中。

您可以使用RestKit,如果您花一点时间配置它,它可以处理网络请求并将收到的JSON直接映射到Core Data。或者,如果您希望自己进行解析,则可以使用AFNetworking

要显示数据,您可以使用NSFetchedResultsController。设置完查询并完成初始提取后,将表视图连接到该查询,并显示梯形图。 NSFetchedResultsController需要一个排序描述符 - 它可能是你的情况下的梯形排名。将包含表视图的视图控制器设置为NSFetchedResultsController的委托。

定期更新很容易。每当您的应用程序进入前台时,您都会检查Core Data对象上的时间戳,看看它是否足够大,以便您启动刷新(或者只是在某处获取简单的NSDate字符串,例如NSUserDefaults,无论何时进行提取)。如果是,再次执行获取/解析/更新周期 - 您的表会自动更新,因为NSFetchedResultsController将被通知基础数据已更改并且将导致表刷新。