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

2020-09-23 17:37:19 +08:00
 PUBG98k
在 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
1629 次点击
所在节点    程序员
4 条回复
PUBG98k
2020-09-23 18:44:56 +08:00
一头雾水·
yuan925
2020-09-23 19:02:57 +08:00
用 AutoReleasePool
godblessumilk
2020-09-24 01:59:19 +08:00
是不是有野指针
shawndev
2020-09-24 09:02:38 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/709854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX