0

可以说我有这样的事情:

AFJSONRequestOperation *operation = ...

[operation start];

当调用 operation start 时,该操作放在哪里?在哪个队列?是否有任何全局(类)操作队列放置此操作并且我可以访问此操作?

因为我需要从另一种方法调用(在某些情况下)[操作停止](可能不是那样调用,而只是从队列中删除操作并停止它),有没有办法做到这一点?

或者我应该使用实例变量 AFJSONRequestOperation 然后像那样访问它?虽然我有很多不同的操作,这会让我创建很多实例变量,所以如果有其他方法的话。

谢谢你。

4

1 回答 1

1

我对 AFNetworking 不是特别熟悉,但据我所知在 AFJSONRequestOperation内部使用NSURLConnection

如果您只是start自己调用该操作,它将在由NSURLConnection. 因此它不会在任何队列中。您应该自己保留对操作的引用以阻止它被释放,并使用某种回调或块来处理结果,可能是由 提供的东西,或AFJSONRequestOperation通过.Key Value ObservingisFinishedNSOperation

或者,因为AFJSONRequestOperation是一个,NSOperation您可以将其添加到NSOperationQueue您创建的或者可能由其他框架功能提供的一个。在这种情况下,它将为您NSOperationQueue调用该方法,并在处理对象时管理对象的生命周期。start同样,您必须确定在操作完成时处理结果的最佳方式。

于 2013-05-26T10:07:11.803 回答