我的应用程序允许用户创建一个要在电子商务网站上列出的项目。用户要经过多个屏幕添加图像和信息,直到他们需要在商店中创建商品。
最后的上传屏幕有一个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];