1

関数を別の関数内に配置しようとしていますが、次のようになります。

「自己」はこのスコープでは宣言されていません

これはコードです:

-(void) alone {
    label.text = [NSString stringWithFormat:@"Hello world"];
}

void *multithreading( void *ptr ) {
    [self alone];
}

それで、Oは、最後のコードを次のように変更すると、警告/エラーがなくなることを発見しました。

-(void *) multithreading:( void * )ptr {
    [self alone];
}

マルチスレッドを同じように維持しようとしています。そうしないと、コードが機能しません。助けてください。

4

1 に答える 1

1

c関数でobjective-c変数にアクセスすることはできません。selfパラメータとしてc関数に 渡す必要があります。

void *multithreading( void *ptr , void *info) {// self in info
    id obj;
    if (info)
   {
    obj = (id)info;
    [obj alone];
   }
}
于 2012-07-02T14:12:12.600 に答える