CコンソールプログラムをiPhoneに移植しようとしています。すべてのコードをプロジェクトにインポートしました。ユーザーがUIのボタンをクリックすると、NSOperationでmain()を呼び出します。
とにかく、このプログラムは複雑で、独自のスレッドの多くを作成します。プログラムは「exit()」も何度も呼び出します。これによりiPhoneアプリ全体がクラッシュしますが、Cプログラムが再起動した場合は、ユーザーが再起動できるようにする必要があります。
私はこれらの終了条件のクリーンアップに取り組んでおり、Cプログラムが作成する子スレッドのいくつかでpthread_exit()を使用しました。ただし、NSOperationオブジェクトから作成されたスレッドでpthread_exit()を呼び出すと、アプリのメインスレッドがSIGABRTシグナルを取得し、アプリ全体がクラッシュします。
私は状況を正しく評価していますか?私はiOSプログラミングに慣れていないので、この信号は他の場所から来ている可能性があります...そして私が正しければ、これを回避するための最良の方法は何ですか?
(ああ、このNSOperationスレッドを終了するために「return0」を使用することについて:終了したい条件はCプログラム関数の奥深くにネストされています。すでに非常に複雑なので、プログラムの構造をできるだけ変更しないようにします。 )。
助けてくれてありがとう!