2

私は iOS の初心者で、btn1 と btn2 の 2 つのボタンがあります。

function1: ボタン 1 にこの関数を使用します。これをクリックすると、命令が実行されます。

function2: ボタン 2 にこの関数を使用します。これをクリックすると、 の loop( )globalVarを停止するために 1 に変更します。whilefunction1

-(IBAction)function1
{

while ( globalVar==0 )
{
    //instruction
}

}

-(IBAction)function2
{
globalVar = 1;
}

しかし、それは機能しません。

4

5 に答える 5

2

次のように UI スレッドをブロックしているため、これは機能しません。

while ( globalVar == 0 )    // I assume you meant == and not =
{
    //instruction
}

UI イベントを処理できないためです。

あなたが実際にやりたいことを教えてください。おそらくもっと多くの解決策を提供できます.

于 2013-09-27T16:06:13.793 に答える
0

これでうまくいくはずです。

-(IBAction)function1
{


   NSRunLoop *theRL = [NSRunLoop currentRunLoop];
   while ( globalVar==0 && [theRL runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]])
   {
       //instruction
   }

}

-(IBAction)function2
{
globalVar = 1;
}
于 2013-09-27T20:32:57.527 に答える
-2
-(IBAction)function1
{

    while ( globalVar==0 )
    {
      //instruction
    }

}

-(IBAction)function2
{
   globalVar = 1;
   [self function1]; // goto
}
于 2013-09-27T20:35:34.763 に答える