Ios 我应该在swift中使用GCD还是NSOperationQueue

Ios 我应该在swift中使用GCD还是NSOperationQueue,ios,swift,Ios,Swift,我有一个用Swift 3编写的iOS应用程序。在其中一个模块中,我需要同时将多个文件上载到Web服务器(文件由用户从照相机或多媒体资料中选择)。我还必须为每个文件显示进度指示器,指示何时上传正在进行,何时上传完成。每个文件大约3-4MB,文件数量未知(取决于用户) 我的问题: 我应该使用低级GCD api还是更高级的NSOperation/NSOperationQueue抽象? 我搜索了很多,但有些答案不一(有些说是GCD,另一些说是NSOperationQueue)。我一直在为这个问题苦苦挣扎

我有一个用Swift 3编写的iOS应用程序。在其中一个模块中,我需要同时将多个文件上载到Web服务器(文件由用户从照相机或多媒体资料中选择)。我还必须为每个文件显示进度指示器,指示何时上传正在进行,何时上传完成。每个文件大约3-4MB,文件数量未知(取决于用户)

我的问题:

我应该使用低级GCD api还是更高级的NSOperation/NSOperationQueue抽象? 我搜索了很多,但有些答案不一(有些说是GCD,另一些说是NSOperationQueue)。我一直在为这个问题苦苦挣扎,我不想开始编码,但最终发现我选择了错误的方法。(无论如何,多线程代码都很有挑战性)


多谢各位

我认为您应该选择NSOperationQueue,因为它可以让您更好地控制任务。NSOperationQueue将提供对象,如果需要,您还可以在这些对象上添加依赖项


我建议使用NSOperationQueue来完成此任务。主要是因为您可以(也可能希望)取消
NSOperations
。(基于观点:始终使用尽可能高的抽象)这是来自RayWenderlich GDC Swift教程:“一般来说,如果您使用的是简单的射击和遗忘任务,那么最好使用GCD。NSOperations提供了更好的控制,一个处理最大并发操作的实现,以及一个以速度为代价的更面向对象的范例”。我的案例是否考虑了“简单的启动并忘记任务”?我不确定。非常感谢您!