0

重複の可能性:
performselectorを使用して、特定の期間の後に引数を持つ関数を含める方法

私はこのiPhoneアプリのプログラミングに不慣れです。構造体ポインタとして1つの引数型を持つ関数があります。これを以下に示します

-(void)responce:(structurePtr *)someData
{
......
......
}

5秒の時間間隔の後にperformselectorメソッドを使用してこの関数を呼び出したい。

以下のコードを使用してアクティビティを実行しました

[self performSelector:@selector(responce:) withObject:someData afterDelay:5];

これは、応答関数とも呼ばれません。上記のperformselectorを実行すると、クラッシュしてEXc_BAD_ACCESSメッセージが表示されます。

応答関数を呼び出さない理由を教えてください。

もう1つは、上記のperformSelectorで、「 performSelectorの引数2を渡す:withObject:afterDelay:from incompatablepointertype」という警告が1つ表示されていることです。

4

1 に答える 1

1

     あなたの structurePtr はプレーンな c 構造体でperformSelector:あり、2 番目のパラメーターが obj-c オブジェクト (id型) である必要があるようです。
     また、「警告をエラーとして扱う」オプションをオンにしてプロジェクトをビルドするのも良い方針かもしれません。コンパイル時の警告が実行時エラーになることがよくあります...

于 2009-12-15T09:58:42.797 に答える