Ответ 1
"похоже, что это объект или так, чтобы он заботился о правильном чертеже, будь то для печати, устройства, PDF и т.д."
Точно правильно.
Вы просто пишете процедуры, которые "действительно" выполняют какой-либо рисунок (но это может быть где угодно, для любого типа вещи или устройства). Вам не нужно беспокоиться о НИЧЕГО, кроме рисования в абстрактных... строках, кругах, типографии, цветах и других подобных нонсенсах.
-(void)happyDrawing
-(void)sadDrawing
-(void)fancyDrawing
Тогда - удивительно - вы можете использовать их где угодно.
-(void)makeSomeFiles
{
.. set up a context for making files
.. happyDrawing
}
-(void)makeATruGrayScaleBitmap
{
.. set up a context for making a gray bitmap
.. happyDrawing
}
-(void)drawRect
{
.. drawing on your Lisa screen
.. happyDrawing
}
-(void)drawRect
{
.. drawing on your iPad screen
.. happyDrawing
}
-(void)printAPage
{
.. set up a context for printing
.. happyDrawing
}
Надеюсь, это поможет!