2016-11-12 136 views
0

我想知道,在xcode中实现Swift 2的最佳方法是什么: 如何在结束第一个函数后执行第二个函数,然后执行函数编号3,然后4.等等?在函数结束前执行函数

编辑:

这是什么意思关于这个决议?

// Function 1 
func function_1(completion: (result: Bool)->()) 
{ 
    // Wait 10 sec 
    sleep(10) 

    print("Function 1") 

    completion(result: true) 
} 

// Function 2 
func function_2(completion: (result: Bool)->()) 
{ 

    print("Function 2") 

    completion(result: true) 
} 

要拨打:

function_1() 
{ (boolValue) ->() in 
    if boolValue == true 
    { 
     self.function_2() 
     { (boolValue) ->() in 
      if boolValue == true 
      { 
       // function 3 
       print("and now function 3") 
      } 

     } 
    } 

} 
+1

为什么要执行第二个函数“结束后”第一个函数?为什么不把它作为第一个函数的最后一步呢?需要更多的信息来明确这个问题。 – jtbandes

+0

嗨。例如,因为我需要在不同任务中再次使用相同的功能。 – Andi

回答

0

鉴于2个功能func0func1,必须添加的func0帕拉姆封闭具有func1相同签名。

func func0(completion:() ->()) { 
    defer { completion() } 
    print("func0") 
} 

func func1() { 
    print("func1") 
} 

现在只需打电话给他们写

func0 { func1() } 

输出

// func0 
// func1 

重复相同的技术为更多的功能。

+0

谢谢你的回答。 – Andi

+0

你对这个决议意味着什么? – Andi