我正在调用控制器字符串数据成员并使用该UTF8String
方法将 NSString 对象转换为 C++ 字符串对象,这导致了内存泄漏。调用是在核心音频RenderTone
函数内部进行的,如下所示:
InstrumentGridViewController *viewController = (InstrumentGridViewController *)inRefCon;
string cppTrackName = [viewController->trackName UTF8String];
虽然代码位于 for 循环中,但它会导致相当大的内存泄漏。任何想法为什么?我必须进行转换,因为我正在使用cppTrackName
变量进行 c++ 函数调用。我也试过这个:string cppTrackName = "synthTrack #1";
这工作正常而不会导致任何泄漏,但显然我真的需要从我的控制器中读取值。
这是控制台中的错误(不断重复):
objc[6352]: Object 0x68c3b60 of class __NSCFData autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug