Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to call block from outside its declaration?

Tags:

ios

swift

block

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

like image 274
ketaki Damale Avatar asked Jun 01 '18 07:06

ketaki Damale


1 Answers

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.

like image 180
PPL Avatar answered Sep 28 '22 10:09

PPL