【发布时间】:2013-02-23 14:33:29
【问题描述】:
我已经实现了AFNetworking 没有子类化AFHTTPClient,部分使用了我的DownloadQueueManager 中的以下代码:
-(void)downloadPodcastAt:(NSString *)url toPath:(NSString *)path
{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60.0];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
[self saveQueuedItemInformation];
} failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
// Other stuff
}];
[operation start];
}
我的问题是多方面的。我用谷歌搜索直到我的手指麻木了,但还没有找到一个像样的代码示例,可以使用AFNetworking 简单轻松地检查可达性状态。 (奇怪的是,有很多关于导入 SystemConfiguration.framework 的讨论,这似乎很容易)。所以如果我的用户想尽量减少他们的数据使用,并且只使用 wifi 下载,我如何检查 wifi,并且只有在 wifi 可用时才下载?
其次,AFNetworking 似乎想成为一个用户友好的前端。但我实际上可以在这个前端使用一个前端,因为那里有很多东西必须经过筛选才能获得需要的东西。我只需要访问一个 url,下载一个 xml 文件(基于可达性),然后用它做一些事情。我是否遗漏了一些使这成为一项简单任务的东西?
当我理解这一点时,我完全是在构建一个或五个前端来简化实现(假设我不只是一个白痴)。提前感谢您的任何回复。
【问题讨论】:
-
Reachability不是 AFNetworking 的一部分,您必须依赖它的通知或进行状态检查 manually。这是有道理的,因为您可能希望在用户甚至能够尝试加载某些内容之前检查连接性,并且网络操作可能会使用缓存或返回错误。 -
但是 AFNetworking 使用了可用性,并且实现了与 Reachability 实现的非常相似的东西,以检查连接状态。我的问题主要是如何最有效地访问这些枚举变量。
标签: ios ios6 afnetworking reachability