Похоже, что вы восстанавливаете целое изображение, а затем сохраняете его на диск для каждой плитки (и, вероятно, визуализируете его снова), это источник ресурсов.
Попробуйте этот подход:
сохранить плитки на диск, и параллельно ,
читатьплитки с диска и построить их в памяти, нарисовав его в контексте.Взгляните на UIGraphicsBeginImageContext и [UIImage drawInRect].(Не уверен, что использование ресурсов лучше, чем CGImageCreateWithImageInRect)
По завершении сохраните его на диск.См. UIGraphicsGetImageFromCurrentImageContext
Если вы сталкиваетесь с проблемой памяти, когда изображение становится больше, вы можете настроить # 3, то есть добавить порог к числу плиток, чтобы знать, когда сохранять его на дискдо достижения предела памяти.
Кроме того, я не видел в вашем коде, как вы рендеринг изображения для отображения, но setNeedsDisplayInRect полезно для этого для отображения только на указанном прямоугольнике.Однако, если вы используете CATiledLayer, с этой комбинацией будут некоторые проблемы, попробуйте поиграть с ней или поищите решение, пока не получите его в точности так, как вы этого хотите.