Я работаю над игрой iPhone, которая использует MKMapView в качестве playfield. Только после нескольких минут игры приложение неизбежно начинает становиться вялым и в конечном счете отказывает из-за низкой памяти. После рытья вокруг преступника, кажется, что представление карты постоянно требует большей памяти. Игра требует большого изменения масштаба и панорамирования карты, таким образом, я могу только предположить, что кэш карты мозаик просто продолжает расти, пока это не исчерпывает память. Там какой-либо путь состоит в том, чтобы вынудить представление карты сбросить, это - кэш мозаик, или содержите, это - потребление памяти?
Устанавливаете ли вы идентификатор повторного использования в представлениях аннотаций? (Это означает, что система может отсоединять эти представления и одновременно хранить в памяти лишь небольшое количество представлений. Это также увеличивает производительность прокрутки, поскольку при прокрутке будут повторно использоваться отдельные представления.)
Используйте этот метод, чтобы получить представление аннотации, которое будет повторно использован:
- (MKAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier