84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
ios的mkmapview在zoom时内存会暴涨,并且降不下来。我在网上搜了很多,也尝试了很多解决方案,比如切换地图显示模式(MKMapType)、不用时释放掉地图。但是并没有明显的解决缩放时的内存问题。
认证高级PHP讲师
이 메모리는 수십 메가바이트까지 늘어나는데 이는 정상적인 현상입니다.
Mapview는 렌더링 속도를 위해 TiledLayer(타일 레이어)를 사용합니다. 지도 타일은 메모리에 캐시됩니다. 확대/축소하면 지도 타일이 다양한 수준으로 캐시됩니다.
메모리가 부족할 경우 MKMapView가 캐시를 자동으로 삭제하므로 이 문제는 걱정하지 않으셔도 될 것 같습니다.
PS:1 이것은 stackoverflow에서 제공하는 솔루션인데, 왜 그런지 정말 모르겠습니다.
추신:
개인적으로는
viewDidDisappear 메소드에서 지도를 해제한 다음 필요할 때 다시 초기화하세요.
해결책 발견:
mapview의 RegionDidChange 메소드에서는 map.zoomLevel이 특정 범위보다 작을 경우 mapType을 대체하는 것으로 판단합니다
이렇게 하면 메모리 피크를 효과적으로 줄일 수 있습니다.
지도가 특정 범위로 축소되면 메모리 절약을 위해 지도에 있는 상점 등의 세부정보가 삭제되어야 하기 때문입니다.
이렇게 하면 메모리 피크를 효과적으로 줄일 수 있습니다. 어떻게 진행되나요? ? ? ? ? mapView에 ZoomLevel 속성이 있나요? ? ?
이 메모리는 수십 메가바이트까지 늘어나는데 이는 정상적인 현상입니다.
Mapview는 렌더링 속도를 위해 TiledLayer(타일 레이어)를 사용합니다. 지도 타일은 메모리에 캐시됩니다.
확대/축소하면 지도 타일이 다양한 수준으로 캐시됩니다.
메모리가 부족할 경우 MKMapView가 캐시를 자동으로 삭제하므로 이 문제는 걱정하지 않으셔도 될 것 같습니다.
PS:1 이것은 stackoverflow에서 제공하는 솔루션인데, 왜 그런지 정말 모르겠습니다.
으아악추신:
개인적으로는
으아악viewDidDisappear 메소드에서 지도를 해제한 다음 필요할 때 다시 초기화하세요.
해결책 발견:
mapview의 RegionDidChange 메소드에서는 map.zoomLevel이 특정 범위보다 작을 경우 mapType을 대체하는 것으로 판단합니다
이렇게 하면 메모리 피크를 효과적으로 줄일 수 있습니다.
지도가 특정 범위로 축소되면 메모리 절약을 위해 지도에 있는 상점 등의 세부정보가 삭제되어야 하기 때문입니다.
mapview의 RegionDidChange 메소드에서는 map.zoomLevel이 특정 범위보다 작을 경우 mapType을 대체하는 것으로 판단합니다
이렇게 하면 메모리 피크를 효과적으로 줄일 수 있습니다.
어떻게 진행되나요? ? ? ? ? mapView에 ZoomLevel 속성이 있나요? ? ?