我目前正在开发一个链接到MariaDB C连接器的Objective-C库。不过,我相信图书馆存在问题。
每次执行代码时,我都会在控制台上出现非常奇怪的错误。我的库的-(id)init
方法调用mysql_init(NULL)
来初始化库,但是当我从-(id)init
返回时,我在控制台中收到以下错误:
Object 0x10643df70 of class XXX autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug
事实是,没有执行多线程代码,如果我在没有调用- (id)init
的情况下运行相同的mysql_init(NULL)
,则错误消失。我相信libmariadb库会导致出现这些错误。我不明白为什么。
我是否需要使用任何特殊的命令行开关来构建它?我是在说正确的方法吗?我显然使用MySQL在线文档作为指南。
答案 0 :(得分:0)
确保在有新线程时随时添加此内容:
@autoreleasepool {
//enter code here
}
答案 1 :(得分:0)
您是否尝试过从启动板进行的最新修订? 还尝试使用-DUNDEF_THREADS_HACK和构建libmariadb CMAKE_USE_PTHREADS:BOOL = OFF)
答案 2 :(得分:0)
我有一段时间忙于其他事情。我已经将MariaDB更新到最新版本,据我所知,它运行正常。