我在套接字接收函数上获取了NSData,并且试图将这些数据复制到我的音频类的tempbuffer中,我正在使用外部类型全局变量来这样做。

这是我的代码:

memcpy([recorder tempBuffer].mdata,(__bridger const void *)data,data.length);

录音机是我的音频类的extern类型全局变量。

当控制到达这一行代码时,将引发异常,这可能是错误。

最佳答案

这里确实存在三种可能性:

  • [recorder tempBuffer].mdata不是有效的指针。 (例如,它是什么类型?如果它是 NSMutableData ,则应该访问其mutableBytes属性。)
  • [recorder tempBuffer].mdata不是足够大小的有效指针(data.length)。
  • (__bridger const void *)data不是足够大小的有效指针。

  • 在这三个中,我可以保证#3需要寻址。 NSData 本身不是所需的数据,而是包装所需数据的对象。而不是在这里使用桥,您应该使用data.bytes

    另外两个,我无能为力。我不知道mdata是什么类型或它的分配位置。

    10-04 16:23