用于webservice调用的Singleton Pattern iOS

时间:2016-01-18 10:06:24

标签: ios singleton

我有一个单例类,它只用作我的应用程序的Web服务调用。假设该类名为MySingleTonClass。现在要获取各种数据,我称之为不同的类。

eg. [[MySingleTonClass sharedInstance] getDataFromServer];

现在我的问题是,有些时候我必须进行嵌套的Web服务调用(在完成另一个API调用时调用API)。我正在使用这个唯一的类来执行所有API调用,因为这是一个单例,它会工作吗?或者甚至我在后续行上调用这个类的方法。

line 1 - [[MySingleTonClass sharedInstance] getDataFromServer];
line 2 - [[MySingleTonClass sharedInstance] getOtherDataFromServer];

这也有用吗? 根据我的理解,单例的实例将仅在内存中保留一次。这曾经是它的一次实例。因此,如果在sharedInstance已经完成工作的同时调用sharedInstance(已经在内存中)按计划工作了吗?或者我应该将WebServiceCall类更改为普通类并每次创建对象,因为这会使类一次有多个对象,因此同时进行多个API调用。

请事先建议。谢谢。

修改

单例类具有在其中实现的AFNetworking方法

2 个答案:

答案 0 :(得分:0)

如果API更改了该共享资源,那么您将需要使用synchronized来处理更改,这样您就可以确保以同步方式处理对单例的更改

如果API没有更改单个对象,则没有问题

答案 1 :(得分:0)

根据这些方法的内部实现方式,这可能有效,也可能无效。 例如,如果被调用的线程单独负责调用API并获取数据,那么它将起作用,但这将是糟糕的设计。

更好的解决方案是设计围绕街区的api。在一个Web服务的完成块中,您可以调用第二个服务,依此类推。您应该查看一些执行此操作的代码。