所以,我正在将AFNetworking用于iOS应用程序,而我正在进行一些重构以包含一些网络可访问性代码。我之前为请求等编组参数的设计模式是创建特定于服务的请求参数,然后使用它们创建NSURL,然后创建NSURLRequest。
我正在连接的服务到处都是 - 有些需要签名请求,访问令牌,混乱的苦味等等(Twitter,Foursquare,Instagram,Tumblr等)通常。
对于每个服务,基于一般的,服务不可知的协议,我有能够检索状态,检索用户的配置文件数据等的方法。在这些方法中,我创建了一个AFHTTPClient,并且工作正常。
但是,现在我正在添加一些应用程序语义[AFHTTPClient setReachabilityStatusChangeBlock:]我想知道我是否应该为处理各种服务请求的类的每个实例创建一个AFHTTPClient,而不是为每个方法中的每个方法创建一个AFHTTPClient那个处理服务请求的类?已定义可达性状态更改块
有没有人建议在这种情况下使用好的设计模式?我的意思是 - 我可以解决一些问题,但我想知道是否有“最佳实践”/“经验建构”模式?
通常,我处理来自特定服务的请求的类是长期存在的。对于运行时期间登录的每个“用户”来说都是一个,尽管用户数量通常很小 - 几十个。
我想我要问的是 - 一般来说,人们通常在哪里定义他们的AFHTTPClient,他们通常会有什么网络可达性状态更改块呢? (本能说:取消操作,如果状态表明互联网已经消失,当然 - 但是任何聪明的“重试”语义等都会提醒用户?)
答案 0 :(得分:1)
在我的应用程序中坚持规则“每个API服务器一个APIClient”。当向每个APIClient添加不同的位和技巧时,这很方便。它们可能因授权类型和加密而不同。
关于可达性。您是否尝试过将NSNotificationCenter
用于此目的。这是为了填充广泛使用的事件而创建的。您可以查看Reachability库及其示例。