0

我创建了一个 Objective-C 类来使用 libpq 与 PostgreSQL 交互。它主要工作,但我有一个小问题 - 连接似乎随机消失。

此类设置为在打开窗口时打开连接并在窗口关闭之前关闭该连接。在窗口的初始化代码中,我打开连接并收听通知,以便可以使用 PQfinnish() 关闭连接。

现在,如果我打开那个窗口,我可以运行任意数量的查询。但是,如果我关闭它并再次打开它,我会收到 EXC_BAD_ACCESS 错误。错误似乎在 libpq 内部,但我不知道我做错了什么——没有可遵循的示例,这使得遵循模式变得更加困难。

我相信连接对象似乎存在问题,但我无法准确找出所有诊断功能似乎都返回了正确的值。

Postgresql 8.0,在最新的 OS X、最新的 Xcode 和针对 10.5 的项目上运行

4

1 回答 1

0

找到了答案:

崩溃的代码是从通知触发的事件中调用的。崩溃的发生是因为我在关闭窗口时没有从通知中心取消注册该类。

我现在从中心取消注册该课程并且一切正常。

不过,不知道为什么问题会反映在连接对象上。

于 2009-12-03T22:28:08.890 回答