質問

私は真夜中までカウントダウンして、ビープ音が何度も何度も音と果たしていると時間を示すラベルを点滅、単純なアプリケーションを持っています。 (システムサウンドIDの完了コールバック用)、純粋なCの関数が使用できるようにビープ音は、独自のスレッドに行くしながら、だから、ラベルの点滅はNSTimerは、使用しています[NSThread sleepForTimeInterval:...];アラームのビープ音を再生する間にビットを待機します。だから私はtheresのノー自動解放プールを言っていない実行中の2つのエラーメッセージを取得し、それだけでリークします。そのため、私は新しいスレッドを呼び出す方法では、システムサウンドID(ファイル名と拡張子)を作成するために使用されている「文字列」@ 2あります。これらは今までそれを使用しようとする2つだけなので、私は自動解放プールを使用することはできません方法はあります。おかげます。

それとも私の代わりに別のスレッドの2 NSTimersを使用する必要があります..?

ベン・ゴットリーブの答えは、しかし、私はその本当にそれは少し時間がかかる前に、コードの実際の実行としてスレッドを寝る時間に同期されていないかを忘れてしまったので、代わりに別のNSTimerを使用することを決定し、正しかったです。そして、それは物事が対称的になり;)

役に立ちましたか?

解決

ちょうどあなたのスレッドの方法で自動解放プールを作成します:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

...thread body...

[pool release];

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top