【发布时间】:2017-06-18 07:43:37
【问题描述】:
我现在面临一个奇怪的问题。在我的程序中的某个时刻,我在 OSX 中捕获系统的鼠标光标。为此,我这样做:
NSCursor *cursor = [NSCursor currentSystemCursor];
我已经删除了与光标一起测试问题的所有其他内容。但是这个单一的调用给了我一个巨大的内存泄漏(光标每秒被捕获多次)。它大约有 50MB/s 的内存泄漏。
我必须以某种方式释放光标吗?根据文档 (https://developer.apple.com/reference/appkit/nscursor/1533611-currentsystemcursor?language=objc),如果我理解正确,currentSystemCursor 会给我一份系统光标的副本。但它没有说明我是否需要释放内存。
目前我的程序不使用 ARC。
【问题讨论】:
-
你是怎么发现这个漏洞的?您是否尝试过 Xcode 中的内存图视图来查看?你能给我们一个展示泄漏的最小代码示例吗?您的程序是否以任何方式使用线程?还是您正在运行循环以重复捕获光标?
标签: objective-c macos memory-leaks