私は現在GCDを使用しています。NSOperation
しかし、それは実際にはより高いレベルのプログラムだと聞いています。ただし、はるかに複雑です。
GCD では、バックグラウンドで何かを行うには、私が作成したこのヘルパー関数を使用するだけです。
+(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();
}];
}];
}
でそれを行うのNSOperation
は簡単ですか?
何か不足していますか?NSoperation で同じことを行うにはどうすればよいですか?