0

libpq を使用して PostgreSQL とやり取りするための Objective-C クラスを作成しました。ほとんどの場合は機能しますが、小さな問題が 1 つあります。接続がランダムに消えるようです。

このクラスは、ウィンドウが開いたときに接続を開き、ウィンドウが閉じる前にその接続を閉じるように設定されています。ウィンドウの初期化コードで接続を開き、通知をリッスンして、PQfinnish() で接続を閉じることができるようにします。

そのウィンドウを開くと、必要な数のクエリを実行できます。しかし、それを閉じて再度開くと、EXC_BAD_ACCESS エラーが発生します。エラーは libpq 内にあるようですが、何が間違っているのかわかりません。従うべき例がないため、パターンに従うのが少し難しくなります。

接続オブジェクトに問題があるように思われますが、すべての診断関数が正しい値を返しているように見えるため、正確にはわかりません。

Postgresql 8.0、最新の OS X、最新の Xcode、および 10.5 をターゲットとするプロジェクトで実行

4

1 に答える 1

0

答えを見つけました:

クラッシュしたコードは、通知から発生したイベントから呼び出されました。ウィンドウを閉じるときに通知センターからそのクラスを登録解除していなかったため、クラッシュが発生しました。

私は今、センターからそのクラスを登録解除し、すべてうまくいきます。

ただし、問題が接続オブジェクトに反映された理由はわかりません。

于 2009-12-03T22:28:08.890 に答える