0

我正在使用 xcode 上的情节提要和我的一个 tableviews 上做一个 iphone 应用程序,我想显示我将从文件或数据库加载到 table view 的英国超级联赛表。我的问题是如何将这张桌子连接到互联网,以便在他们比赛后每周更新球队位置?这个动作叫什么,是 RSS 提要还是 ftp 推送?有些人正在使用 Json 和数据库,但这对我来说太令人困惑了,因为我在这个领域非常陌生。我想知道大家的想法,并会非常感谢您的回答。提前致谢!斯坦

4

1 回答 1

2

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

我会考虑将团队定义为核心数据对象。您可能想为 Division 和 Team 创建对象(如果术语有误,抱歉,对 EPL 了解不多)以允许球队降级或升迁。在每个分区中,您将拥有团队关系,因此您只需从核心数据中获取 Division 对象,然后使用 Division.teams 获取所有团队的 NSSet 即可显示任何分区的阶梯。

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

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

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

定期更新很容易。每当您的应用程序进入前台时,您都会检查您的核心数据对象上的时间戳,并查看它是否足够旧,可以开始刷新(或者只要在某处存储一个简单的 NSDate 字符串,例如 NSUserDefaults,每当您执行 fetch )。如果是,请再次执行 fetch/parse/update 循环 - 您的表会自动更新,因为 NSFetchedResultsController 将被通知底层数据已更改,并且会导致表刷新。

于 2012-10-09T23:43:11.137 回答