NSBlockOperationクラス
INDEX>Foundation> >NSBlockOperation
解説
継承 | NSObject |
準拠 | NSObject (NSObject) |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能 | iOS 4.0以降 |
定義 |
概要
一度に複数のブロックを実行しようとするときにこのオブジェクトを使用することができます。
オブジェクトの操作
ブロックでブロックオペレーションを作成するには(+ blockOperationWithBlock:)メソッドを使用します。
オペレーションを追加するには(– addExecutionBlock:)メソッドを使用します。レシーバが管理するブロックを配列で返すには、(– executionBlocks)メソッドを使用します。
1秒ごとに起動するログと1.5秒ごとに起動するログのブロックを同時に動かすサンプル
#pragma mark NSBlockOperation addOperation: -(void)method001 { NSMutableString *muStr = [NSMutableString stringWithCapacity:0]; [muStr appendString:@"string"]; //一つ目の処理 NSBlockOperation* operation = [NSBlockOperation blockOperationWithBlock: ^{ for (NSInteger i=0; i < 10; i++) { [muStr performSelectorInBackground:@selector(appendString:) withObject:@"+"]; NSLog(@"muStr %@ ", muStr); [NSThread sleepForTimeInterval:1.0]; } }]; //2つめの処理を追加 [operation addExecutionBlock:^{ NSLog(@"NSThread: %p", [NSThread currentThread]); for (NSInteger i=0; i < 5; i++) { NSLog(@"muStr %d", i); [NSThread sleepForTimeInterval:1.5]; } }]; // 終了時処理 [operation setCompletionBlock:^{ NSLog(@"end"); }]; //実行 [operation start]; }
メソッド
定数