将 Google 的云计算功能连接到 Apple 的 iPhone 中
2009-02-25 11:06:35 来源:WEB开发网为了使用此类,我们提供了一个 NSURL
,XML plist 就位于其中,我们告知它从磁盘下载或拉取数据。GRplistController
在此用户的数据存储目录生成一个 plist 字典文件,以便存储组成远程 URL 的缓存后的 plist 的位置和最近一次下载日期。plist 被下载一次后,后续的数据加载就可直接从磁盘进行。另外,还可以针对给定 URL 的最后一次下载的日期和时间使用 lastUpdate
属性来查询 GRplistController
对象,并决定何时从 Web 刷新数据。GRplistController
总是使用 NSURLConnection
异步下载数据,这样用户界面不会在等待新数据时冻结起来。如果新的数据不可用或不可访问,可以继续使用所缓存的数据,直至新数据可用且可完全下载。您还可以将一个对象设为 GRplistController
的一个代理(delegate),借此就可对数据下载进行细粒度控制,就能在更新数据到来时提供通知,在远端数据被证实不可访问时提供详细的错误报告。GRplistController
的这些代理方法在 GRplistControllerDelegateProtocol.h 内定义,如清单 5 所示。
清单 5. GRplistControllerDelegateProtocol.h
@class GRplistController;
@protocol GRplistControllerDelegate
@optional
// the list controller will automatically try to update data when the network status
// changes, so it's asking permission.
- (BOOL)listControllerShouldDownloadRemoteData:(GRplistController *)listController;
- (void)listController:(GRplistController *)
listController downloadDidFailWithError:(NSError *)err;
// if the data from the server has changed...
- (void)listControllerDataWillChange:(GRplistController *)listController;
- (void)listControllerDataDidChange:(GRplistController *)listController;
@end
更多精彩
赞助商链接