Ich verwende derzeit GCD. Allerdings habe ich gehört, dass NSOperation
eigentlich ein höheres Programm ist. Es ist jedoch viel komplexer.Welcher ist einfacher zu benutzen? GCD oder NSOperation?
In GCD, tun Sie etwas im Hintergrund einfach diese Hilfsfunktion verwende ich erstellt:
+(void)doForeGround:(void (^)())block
{
dispatch_async(dispatch_get_main_queue(), ^{
block();
});
}
+(void)doBackground:(void (^)())block
{
//DISPATCH_QUEUE_PRIORITY_HIGH
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0), ^{
//dispatch_async(dispatch_get_global_queue(-2,0), ^{
block();
});
}
-(void)doBackGround:(void (^)())block onComletion:(void (^)())onCompletion
{
[BGHPTools doBackground:^{
block();
[BGHPTools doForeGround:^{
onCompletion();
}];
}];
}
Will es mit NSOperation
tun einfacher sein?
Fehle ich etwas? Wie würde ich bei NSoperation dasselbe machen?
Und ich nehme an, dass NSOperation auch ihre eigenen verschachtelten Autorelease-Stacks erstellt? –
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html beschreibt keine Methode namens new. Ah muss es sein, dass die Abkürzung für allok] init] –
'+ new' von' NSObject' geerbt wird, genau wie alloc und init. Und ja, jeder Block der Operation wird in einem Autorelease-Pool leben. –