在实现从微信中提取语音文件,并转换成文字的全自动化解决方案的过程中,发现在iOS 6中,不管是采用ARC还是MRC,在调用讯飞SDK进行语音识别时,都会报如下的错误:
… autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() …
而在iOS 9中,则不会出现这个问题。Google了一下,找到了这个帖子,里面提到:
So basically, if you are running on OS X 10.9+ or iOS 7+, autoreleasing on a thread without a pool should not lead to a leak
换句话说,如果是在iOS 7及以上,采用ARC和autorelease机制,可以不需要显式添加@autoreleasepool{};而在iOS 7以下,如果不显式添加@autoreleasepool{},就会导致上面的内存泄露。
此疑似bug已提交讯飞开发者论坛,等待反馈,之后更新此帖,敬请关注事态进展。