我有一个MapView,它是我在许多不同视图中重用的单例。因此,每次显示新位置时,此实例的缓存都会累积。
在某个时刻,设备会发送内存警告,这是我应该清除地图缓存的时间。然而,这一点是在地图有太多数据缓存之后出现的,因为大部分数据可能无法再次显示。
我想知道是否可以限制缓存大小,因此内存使用量不会增加太多,我可以更好地控制它,甚至可能为不同的设备模型调整不同的值
如果无法设置限制,是否有办法阅读应用程序的内存消耗?然后我可以手动清除缓存,如果它高于我选择的某个值。
要清除缓存我正在使用切换地图类型的技巧:
- (void)clearMapCache {
MKMapType type = [self mapType];
[self setMapType:(type + 1) % 3];
[self setMapType:type];
}