objective-cにて、ボタン1押下時にコールされる関数がmyAction1で
ボタン2押下時にコールされる関数がmyAction2の場合に
ボタン1押下時の処理Aが終わるまでは、ボタン2押下しても
処理Bが行われないようにするにはどのようにすればいいのでしょうか。
当方で思いつくのは、グローバル変数でフラグを持たせて
処理Aが終わるまではフラグをたてて、処理Bの前にそのフラグ
のチェックをするというぐらいしか思い浮かびません。
もう少しスマートでかっこいい方法があれば教えてください。
objective-c 排他制御
Re: objective-c 排他制御
普通に組めば処理Aが終るまで処理Bは実行されないはずですが、べっきー さんが書きました:ボタン1押下時の処理Aが終わるまでは、ボタン2押下しても
処理Bが行われないようにするにはどのようにすればいいのでしょうか。
それぞれのボタンのアクションをマルチスレッドにしてしまったってことですか?
状況がよく理解できていませんがそういうことであれば、@synchronizedを使ってみてはどうですか?
Re: objective-c 排他制御
文章の書き方がわるかったです。すみません。
アプリ起動後、ボタン1を一番はじめにおされるまでは、ボタン2を押しても蒸し続ける場合は
フラグ制御(ボタン1をおすとグローバル変数のフラグをたてる。ボタン2押下時、フラグ判定)
以外に処理はないでしょうか。
C言語ではフラグ制御もありだと思いますが、Objective-cで別にいい方法があればと
思ってます。
ご回答お願いします。
アプリ起動後、ボタン1を一番はじめにおされるまでは、ボタン2を押しても蒸し続ける場合は
フラグ制御(ボタン1をおすとグローバル変数のフラグをたてる。ボタン2押下時、フラグ判定)
以外に処理はないでしょうか。
C言語ではフラグ制御もありだと思いますが、Objective-cで別にいい方法があればと
思ってます。
ご回答お願いします。
Re: objective-c 排他制御
あー、すみません、そういう意味でしたか。べっきー さんが書きました:ボタン1を一番はじめにおされるまでは、ボタン2を押しても蒸し続ける場合は
フラグ制御(ボタン1をおすとグローバル変数のフラグをたてる。ボタン2押下時、フラグ判定)
以外に処理はないでしょうか。
であれば、最初はボタンそのものを非表示(setHidden:YES)、或いは不活性(setEnabled:NO)にしておき、
ボタン1が押されたら、表示(setHidden:NO)、或いは活性化setEnabled:YES)するのがベストだと思います。