我有一个单例类,它只用作我的应用程序的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方法
答案 0 :(得分:0)
如果API更改了该共享资源,那么您将需要使用synchronized来处理更改,这样您就可以确保以同步方式处理对单例的更改
如果API没有更改单个对象,则没有问题
答案 1 :(得分:0)
根据这些方法的内部实现方式,这可能有效,也可能无效。 例如,如果被调用的线程单独负责调用API并获取数据,那么它将起作用,但这将是糟糕的设计。
更好的解决方案是设计围绕街区的api。在一个Web服务的完成块中,您可以调用第二个服务,依此类推。您应该查看一些执行此操作的代码。