当视图控制器改变时,Afnetworking异步后台任务处理响应



我的应用程序允许用户创建一个要在电子商务网站上列出的项目。用户要经过多个屏幕添加图像和信息,直到他们需要在商店中创建商品。

最后的上传屏幕有一个UIViewController使用AFNetworking有两个服务调用:

1)调用图像上传webservice并返回一些ID。如果成功,它调用(2)。

2)使用这些返回的ID作为请求的一部分调用另一个服务。

这个过程在用户点击Submit按钮时启动。

我希望发生的事情如下:

用户单击Submit,进程在后台启动当前故事板场景返回到开始屏幕,允许用户创建另一个项目,而前一个项目仍在运行。

作为代码的服务调用和处理响应从他们是在UIViewController一旦场景改变,UIViewController将不再在堆栈上运行,所以会发生什么服务响应等?

如果我创建一个单独的类来完成这项工作,当场景发生变化时,我将失去对象引用。如果方法仍在处理,它会被垃圾收集吗?

我应该把这个放在后台线程上使用中央调度吗?

更多细节,下面是一个例子。

我通常有一个名为NetWrapper的类,它管理整个网络相关的东西。

. h

@interface NetWrapper : NSObject
+ (instancetype)shared;
#pragma mark - APIs
- (void)requestVersion;
@end

m

static NetWrapper *_netWrapper;
@implementation NetWrapper
+ (instancetype)shared
{
    if(_netWrapper == nil)
    {
        _netWrapper = [[NetWrapper alloc] init];
    }
    return _netWrapper;
}
#pragma mark - APIs
- (void)requestVersion
{
    // do something
}

如果你有一个像这样的单例类,你总是可以用

有相同的实例
[NetWrapper shared]

和调用实例方法,如下所示。

[[NetWrapper shared] requestVersion];

最新更新