Как вызвать блок извне его декларации? - PullRequest
0 голосов
/ 01 июня 2018

Здравствуйте, у меня есть следующее требование.

Я хочу вызвать блок завершения после срабатывания метода делегата.

Пожалуйста, найдите приведенный ниже пример кода.

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

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

func Method2
{
    Completion(data,error)
}

Method2 - мой метод делегата.Поэтому, когда я вызываю Method1 из какого-то другого класса, он входит в блок, как только указатель на Method2

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете создать одно свойство, подобное этому,

var completionBlock : CompletionBlock!

Сейчас на Method1

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

на Method2

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

У меня нетпротестировал этот код, но реализовал его в одном из моих приложений.Надеюсь, это поможет вам.

...