跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 开发 mac app objective c 一个懵逼的 NSData 内存泄露疑问
未分類
26 9 月 2020

开发 mac app objective c 一个懵逼的 NSData 内存泄露疑问

开发 mac app objective c 一个懵逼的 NSData 内存泄露疑问

資深大佬 : PUBG98k 1

在 while 循环下 执行
NSData *data = [NSData dataWithBytes:buf length:size];
。。。
会引起 NSData 内存泄漏,
只能等到循环结束后,才释放
有大佬遇到过这个问题吗?知道如何解决吗?谢谢~

void *buffer = (void*)malloc(pkt->data.frame.sz);
memcpy(buffer, pkt->data.frame.buf, pkt->data.frame.sz);
*data_p = [[NSData alloc] initWithBytesNoCopy:buffer length:pkt->data.frame.sz freeWhenDone:YES];
// packet.videoPacket.data_p = data_p;
// *free(buffer); // dataWithBytesNoCopy 不用这个 free

大佬有話說 (4)

  • 主 資深大佬 : PUBG98k

    一头雾水·

  • 資深大佬 : yuan925

    用 AutoReleasePool

  • 資深大佬 : godblessumilk

    是不是有野指针

  • 資深大佬 : shawndev

    for 循环大量申请内存要放在 autorelease pool 里,参考 https://github.com/ibireme/YYModel/blob/1230e605c1abdcd34bf0adb371d89783ff39a856/Benchmark/ModelBenchmark/ViewController.m#L91

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具