我在我的应用程序中实现了Windows 10通知。但是,下面的代码(运行正常)显然会给出1个TNotification对象和2个字符串的备忘录泄漏,但我在块的末尾释放了该对象:
aNotification := NotificationCenter.CreateNotification;
//-- If not assigned then must be Win 8.1 or below
if not assigned(aNotification) then
exit;
try
aNotification.Title := AlignMixVersionName + ' License';
aNotification.AlertBody := aText;
NotificationCenter.PresentNotification(aNotification);
finally
aNotification.Free;
end;
我是在做一些愚蠢的事情,还是在通知的实施中存在内存泄漏?
答案 0 :(得分:8)
确实是由TNotificationCenterDelegateActivated
引起的泄漏。在Create
中创建了TNotification
参数的副本,但从未释放过。
似乎一些负责此代码的开发人员并不熟悉非ARC环境。