次のようなメソッドがあります。
- (void)doSomething:(void(^)(MyItem *item))optionalBlock {
// 1. Do the regular stuff with the item
item.regularStuff = @"something_regular";
// 2. Run the optional block
// which may or may not make some extra modifications to the item
if (optionalBlock) optionalBlock(item);
// 3. Save the modified item into the Core Data
// etc
}
私はこのようにどちらかを呼び出す予定です
[self doSomething:nil];
または:
[self doSomething:^(MyItem *item) {
// Make some extra modifications to the item before it’s saved
item.custom = @"custom";
}];
ステップ 3 で、メソッドと (場合によっては) オプション ブロックの両方によって既に変更されたものを常に取得すると仮定しても安全item
ですか、それとも、ブロックがいつ終了したかを正確に知るために何らかの方法を実装する必要がありますか?そこから続行できるように実行していますか?