私は次の方法を持っています:
-(void) waitForStatusChangeAndPerformBlock:(MyBlockType)successBlock;
これはメソッドが行うべきことです:
status
一部が正しい値を持っているかどうかを確認します- ブロックを呼び出す場合
successBlock
status
が指定された値に変更されるのを待ってからブロックを呼び出す場合successBlock
値が変更されたかどうかを確認するために KVO を考えましたが、ブロックをインスタンス変数に格納するか、さらに悪いことに配列に格納する必要があり、現在のメソッド呼び出しのコンテキストが失われます。だから私が本当に欲しいのは次のようなものです:
-(void) waitForStatusChangeAndPerformBlock:(MyBlockType)successBlock{
if(self.status == kDesiredStatus){
successBlock;
} else {
[TheMagicDispatchWaitUntil:(self.status == kDesiredStatus) andThenDoThis:^{
successBlock;
}];
}
}
KVO やその他のヘルパー メソッドを使用せずにこれを実現する方法はありますか?