Для вашего первого вопроса я бы скорее сказал, что CALayer создает контекст в терминах CGContextRef, а затем передает его представлению, являющемуся его делегатом.
Что касается вашего второго вопроса, насколько я заметил, кажется, что CALayers очень близки к аппаратному обеспечению и видеопамяти. На самом деле, если вы установите CGImageRef в качестве содержимого CALayer, вы передадите изображение на экран, прямо в видеопамять (это трудоемкая операция). Поэтому я предполагаю, что CALayer получает своего рода изображение из своего CGContextRef (того, который был заполнен представлением), а затем назначает его в качестве своего содержимого. ИЛИ, может быть, созданный контекст является непосредственно пробелом в видеопамяти, и каждая операция рисования в drawRect вызывает доступ к этой памяти ...
Хотя я не эксперт по этим процессам, я могу только догадываться, что происходит из того, что я видел.
Обратите внимание, что я говорю «видеопамять», но я думаю, что на iPhone такого нет, а скорее часть основной памяти, предназначенная для видео операций. Эта часть отображается, и вы можете увидеть потребление с VMTracker в инструментах.
Опять же, я не уверен в этом, если у кого-то есть больше информации, я был бы рад услышать это!