nat*_*203 4 design-patterns objective-c ios
我的问题主要与Objective C中的层次模型的架构或设计模式有关.对于后台我的应用程序相对简单.通常,它与Web服务进行对话,以检索和显示用户可以遵循的内容.当有人关注某事时,他们所关注的事物在概念上被存储,以便稍后通过发布到Web服务来访问.
我想建议逻辑应该去哪里管理Web服务和用户遵循的事物组之间的交互.
例如,是否适合创建一个模型对象,例如MyStuffModel一个名为followedThingshold的AThingModel对象的数组属性?如果是这样,是否可以在模型中编写和执行从Web服务等刷新的逻辑?
潜在的代码示例
@interface MyStuffModel : NSObject
@property (nonatomic, strong) NSArray *followedThings;
- (void)refreshAllFollowedThingsFromWebService;
@end
@implementation MyStuffModel
- (void)refreshAllFollowedThingsFromWebService
{
//call my API client (built on AFNetworking), get back a response
//populate followedThings, notify a view controller, etc
}
@end
Run Code Online (Sandbox Code Playgroud)
或者,如果我没有MyStuffModel对象并通过直接从视图控制器调用我的API客户端来管理对我的Web服务的调用?
根据您的经验,需要采用哪种方法?或者还有另一种方式吗?
我会从模型中做所有的网络.以下是所有部件如何组合在一起的概述
NSNotificationCenter通知控制器新信息可用使用Apple的推送通知服务(APNS),您的服务器可以在新数据可用时通知您的应用程序.这有助于减少网络流量,因为您的应用不必经常轮询服务器以确定何时有新数据可用.如果您不熟悉APNS,那么您需要了解该服务的一个非常重要的功能(因为它似乎是许多新用户的混淆点).该服务仅保证发送最后一条消息.因此,例如,如果服务器为特定设备获取10个新项目,并在设备关闭或在隧道中时向设备发送10个通知,则该服务仅保证提供第10个消息.关键是您无法使用APNS将任何数据从服务器发送到设备,因为某些消息可能会丢失.您应该只使用APNS通知设备数据可用.