相关疑难解决方法(0)

闭包返回值(先前为completionBlock)

我想在长期操作完成后返回一些值.但此外,我想分裂逻辑和gui.

例如; 我有两节课

  1. SomeServices.swift有一个名为"getDataFromService ..."的方法
  2. MyTableViewController.swift将显示"getDataFromService"的结果

所以,以前在Objective-C中我只是在SomeServices中添加一个方法,如下所示:

(void)getDataFromService:(void (^)(NSArray *, NSError *))completionBlock{ ...... }
Run Code Online (Sandbox Code Playgroud)

在这个方法中,我只是调用completionBlock(myData, myError)将我的值返回到tableviewcontroller.

我必须在SomeServices.swift中定义的等效闭包是什么以及如何在MyTableViewController中调用它?

我知道如何调用这样的简单闭包:

   ....({
            responseData, error  in
            if(!error){
                //Do something
            }
        })
Run Code Online (Sandbox Code Playgroud)

但我没有任何想法如何定义一个与completionBlock等效的闭包.

任何帮助,将不胜感激

swift ios8

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

ios8 ×1

swift ×1