很抱歉这里有很多关于这个问题的帖子,但我在这里取得了进展。
我有一个回调函数,它位于 C 中,并在到达新缓冲区时被调用。
我在这里被告知不要在那个回调中做任何事情,不要做 malloc 或任何事情。
现在我想将我的新缓冲区发送到另一个类(这将创建一个圆形缓冲区并保存许多缓冲区)。
但是,我没有得到的基本信息是,如果我从回调中调用另一个函数 - 它与在其中执行它相同 - 因为在该函数中我执行 DSP 并且它需要时间,所以它与执行它相同在那个回调中-因为它是串行的。
froof:我正在将数据发送到另一个类中的另一个函数,它没问题,但如果我尝试NSLOG
在那里,我又遇到了这个内存泄漏。
这是我从回调中调用的另一个类:
- (id)init
{
self = [super init];
if (self)
{
data = malloc (sizeof(SInt16) * 4000);
}
return self;
}
-(void)sendNewBuffer:(SInt16*)buffer
{
data=buffer;
NSLog(@"data arrived size is : %lu",sizeof(data));
for(int i=0; i<sizeof(data);i++)
{
NSLog(@"%d",data[i]);
}
}
只有在 时comment the log
,它才能在没有内存泄漏的情况下工作。这意味着回调正在等待!
我将如何在其他地方并行处理这些数据?我现在为此花了一个星期。
谢谢。