V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
牛客网
PUBG98k
V2EX  ›  程序员

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

  •  
  •   PUBG98k · 38 天前 · 512 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 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 条回复    2020-09-24 09:02:38 +08:00
    PUBG98k
        1
    PUBG98k   38 天前
    一头雾水·
    yuan925
        2
    yuan925   38 天前
    用 AutoReleasePool
    godblessumilk
        3
    godblessumilk   38 天前 via Android
    是不是有野指针
    shawndev
        4
    shawndev   38 天前
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1813 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:07 · PVG 09:07 · LAX 18:07 · JFK 21:07
    ♥ Do have faith in what you're doing.