Документация Apple для NSPrintInfo гласит:
Общий объект NSPrintInfo автоматически создается для приложения и используется по умолчанию для всех заданий печати для этого приложения.
Метод sharedPrintInfo
возвращает общий NSPrintInfo
. Что конкретно не указано, так это то, что если вы изменяете этот объект (например, используя setOrientation
), эти изменения "прилипают" к общему объекту? То есть, объект, который вы получаете обратно - одиночка или свежая копия общего объекта?
Одна причина, которую я спрашиваю, заключается в том, что я видел в некоторых примерах кода Apple, где они явно вызывают setSharedPrintInfo
в конце задания на печать. Зачем они это делают, если разделяемый объект является одноэлементным?
Обновление
Кажется, мне нужно прояснить вопрос. Из документации Apple существует экземпляр NSPrintInfo
, который является «общим». Этот «общий» экземпляр используется по умолчанию, если в вызовах методов явно не используется объект NSPrintInfo
. Метод sharedPrintInfo
возвращает указатель на этот «общий» экземпляр.
Неясно, клонирует ли sharedPrintInfo
«общий» экземпляр и возвращает ли на него указатель или просто возвращает указатель на существующий экземпляр.
Если клонировать, то любой вызов, например, один на setOrientation
, повлияет только на клон. Если бы я также хотел изменить ориентацию «общего» экземпляра, мне пришлось бы вызвать setSharedPrintInfo
, указав в качестве аргумента измененный клон.
Если не клонировать, то неясно, почему образец кода Apple явно вызывает setSharedPrintInfo
, потому что все вызовы методов, изменяющие состояние NSPrintInfoObject
, возвращаемое sharedPrintInfo
, уже влияли на «общий» экземпляр.