How to call block from outside its declaration?
Asked Answered
F

1

5

Hello I have following requirement.

I want to call completion block after the delegate method triggered.

Please find bellow sample snippet as example.

typealias CompletionBlock = (_ result: NSData?, _ error: NSError?) -> Void

 func Method1(block:CompletionBlock) 
{ 
   //SOME CODE
}

func Method2
{
    Completion(data,error)
}

Method2 is my delegate method. So when I call Method1 from some other class it will enter into block once pointer is on Method2

Freesia answered 1/6, 2018 at 7:53 Comment(0)
N
7

You can create one property like this,

var completionBlock : CompletionBlock!

Now on Method1

func Method1(block:CompletionBlock) { 
   self.completionBlock = block
}

on Method2

func Method2 {
    self.completionBlock(data,error)
}

I have not tested this code, but implemented like this in one of my application. Hope this may help you.

Neddy answered 1/6, 2018 at 7:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.