NSBlockOperation
exectues a block。 NSInvocationOperation
はNSInvocation
(またはtarget、selector、objectで定義されたメソッド)を実行します。 NSOperation
はサブクラス化する必要がありますが、柔軟性は最も高くなりますが、ほとんどのコードが必要です。
NSBlockOperationとNSInvocationOperationは両方ともNSOperationのサブクラスです。これらはシステムによって提供されるため、単純なタスク用に新しいサブクラスを作成する必要はありません。
NSBlockOperationとNSInvocationOperationを使用すると、ほとんどのタスクで十分です。あなたがお互いからそれらを分離するために、各操作に異なるテキストを使用した場合
// For NSOperation subclass
@interface SayHelloOperation : NSOperation
@end
@implementation SayHelloOperation
- (void)main {
NSLog(@"Hello World");
}
@end
// For NSInvocationOperation
- (void)sayHello {
NSLog(@"Hello World");
}
- (void)startBlocks {
NSBlockOperation *blockOP = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"Hello World");
}];
NSInvocationOperation *invocationOP = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(sayHello) object:nil];
SayHelloOperation *operation = [[SayHelloOperation alloc] init];
NSOperationQueue *q = [[NSOperationQueue alloc] init];
[q addOperation:blockOP];
[q addOperation:invocationOP];
[q addOperation:operation];
}
それがいいだろう。ここでは
はまったく同じことがない3つのすべてを使用するためのコード例です何度も "Hello World"の代わりに。ちょうど提案 – c0d3Junk13