使用NSOperation进行线程会创建太多对象

时间:2009-08-19 14:36:20

标签: iphone cocoa cocoa-touch multithreading nsoperation

我有一个进行SOAP调用的应用程序。为了阻止UI阻塞,我们将每个SOAP调用放入NSOperation的子类中。这很好用,但我们有很多不同类型的SOAP调用。因此,如果我们使用3个WSDL,每个都有10个端口或操作,那么我们在SOAP中进行30次不同的调用,如果我们使用NSOperation将每个调用放在一个线程中,我们最终会得到30个NSOperation子类。

这可能不是一件坏事,但我们正在尝试创建一个可重用的库,因此每个WSDL都有一个对象封装了这些调用。这很好,因为我们使用WSDL2ObjC,这封装了所有逻辑。但是在我们这些NSOperations中包含调用的api似乎很奇怪。此外,我们正在api本身进行线程化,以便调用者可以使用它/她认为合适的方式。

任何建议都会很棒。

1 个答案:

答案 0 :(得分:2)

如果我正确理解你,你已经有了封装对SOAP服务的调用的对象,你只想减少NSOperation子类。

你检查过NSInvocationOperation吗?它是NSOperation的子类,让您将消息作为NSOperation调用发送给对象。所以你仍然得到非阻塞操作,但是你不需要NSOperation的多个子类。