Привыкнув к Swift, я немного поработал с замыканиями как parameters
и как variables
. Я пытаюсь перевести это в Objective- C сейчас. Мне удалось создать простой block
, например:
-(void)myFunc:(void(^)(void))callback {
callback();
}
И из viewDidLoad()
[self myFunc:^{
NSLog(@"?MyCallBack");
}];
Теперь я хотел бы поместить block
в variable
. В Swift это будет что-то вроде этого:
Определение variable
var completionHandler: (() -> ())?
с использованием его в качестве завершения в function
или чем-либо еще:
DispatchQueue.main.async {
self.completionHandler?()
}
и на самом деле callback
completionHandler = {
//DOSTUFF
}
Как бы это перевести на Objective- C?
Что-то вроде ... объявления
void (^completion)(void);
с помощью (это не не кажется правильным. Я получаю предупреждение, что он не используется)
completion;
и callback
completion = ^void(void){
NSLog(@"?YAY");
};
Так чего не хватает?