Ich möchte eine ähnliche Methode schreiben:
+(void)myMethodWithView:(UIView *)exampleView completion:(void (^)(BOOL finished))completion;
Ich habe im Grunde die Syntax einer der Klassenmethoden von Apple reduziert für UIView
:
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
Und würde erwarten, dass es so verwendet wird:
[myFoo myMethodWithView:self.view completion:^(BOOL finished){
NSLog(@"call back success");
}];
Meine Frage ist, wie kann ich das umsetzen? Wenn mich jemand auf die richtige Dokumentation verweisen kann, wäre das großartig, und ein sehr einfaches Beispiel wäre sehr willkommen (oder eine ähnliche Antwort auf Stack Overflow - ich konnte keine finden). Ich weiß immer noch nicht genug über Delegierte, um festzustellen, ob dies überhaupt der richtige Ansatz ist!
Ich habe ein grobes Beispiel dafür, was ich erwartet hätte, in die Implementierungsdatei aufgenommen, aber da ich keine Informationen finden kann, ist es eine Vermutung.
+ (void)myMethod:(UIView *)exampleView completion:(void (^)(BOOL finished))completion {
// do stuff
if (completion) {
// what sort of syntax goes here? If I've constructed this correctly!
}
}
finished
in dem Parametertyp in diesem Beispiel ziemlich unnötig ist ...