2011-09-11 6 views
1

ビデオの末尾バッファを記録しています。 15秒間隔で、AVAssetWriterという新しいインスタンスを作成し、AVAssetWriterInputのインスタンスを入力として追加しています。私はAVCaptureVideoDataOutputを使用して、フレームをつかんで、そして午前、このようにそれらを追加:AVAssetWriterInputクラッシュ

*** -[CFDictionary removeObjectForKey:]: message sent to deallocated instance 0x96b28a0

[writerInput appendSampleBuffer:sampleBuffer]

これは正常に動作時間のほとんどが、時折アプリは、このエラーメッセージでクラッシュしますこのエラーメッセージはどういう意味ですか? AVAssetWriterが割り当て解除されている可能性がありますか?または、AVAssetWriterInputが割り当て解除されたことを意味しますか?他に何か?

おかげで、

ジェームズ

+0

AVAssetWriterInputをそのように再利用できますか? [AVAssetWriter canAddInput:]に何か言いたいことはありますか? –

+0

は問題ではないようです。しかし、ありがとう。私はそれを把握するときに私は再投稿します。 – James

答えて

0

メッセージremoveObjectForKeyは:アドレス0x96b28a0とCFDictionary(おそらくNSDictionaryの)のインスタンスに送られました。そのインスタンスはすでに割り当てが解除されていましたが、コードへのポインタがまだコードによって使用されていました。

ゾンビを有効にして(NSZombiesEnabledとして)実行していた場合、システムは割り当て解除されたオブジェクトを追跡し、参照をダングリングポインタを使用して検出するのに十分長く保持します。

オブジェクトが過剰にリリースされていることがわかっていることは、誤ったリリースを見つけることよりも簡単です。被験者にはたくさんの文章が書かれています。

関連する問題