2016-05-29 119 views
0

有没有办法获得变量正在使用多少内存?获取对象的内存

我的意思是,我有一个内含图像的字典,如果它变得太大,我想删除它里面的一些键/值对。

回答

0

这正是NSCache设计自动处理的内容。给你更深的问题,不像你在想什么。 “X使用多少内存”是一个非常模糊和复杂的问题,特别是当你考虑UIImage时,它可以随时改变它的内存使用情况,并且包含大量不直接针对你的程序的内存。 UIImage已经做了很多内存优化;研究它的文档,然后再重塑它已经在做的事情。

+0

这样做,我发现它更容易实现我自己的全球词典。谢谢! – Ancinek

+0

请注意,'NSCache'提供了一些你不能在自己的代码中重新实现的特性。特别是,如果内存不足,可以在程序暂停时清除可丢弃内容。如果您尝试重新实现'NSCache',则在这种情况下,您的应用程序将被终止而不是清除其可丢弃内容。 (也就是说,如果你使用'init(named:)'创建了你的'UIImage',那么它已经有了可废弃的内容,当你被挂起时可以清除它。) –

+0

有没有一种方法可以观察缓存的特定值,如果该值被添加到缓存然后触发一个函数?当我创建自己的字典时更容易,因为我刚刚在didSet属性观察器中发出通知。 – Ancinek