При выполнении операций рисования в потоках, отличных от потока пользовательского интерфейса, вы должны использовать описанную вами технику. Это особенно важно отметить при использовании таких вещей, как CATiledLayer, который выполняет асинхронный рендеринг в фоновых потоках, или при рисовании пользовательской графики в фоновом режиме по любой другой причине.
Я согласен с PGB, когда вы делаете «простую» графику и вы гарантированно работаете в главном потоке. Однако sizeWithFont делает то же самое, что и метод, который вы описали, - он просто делает это для вас, используя UIGraphicsGetCurrentContext ().