Описание тега nsproxy
NSProxy - это абстрактный суперкласс, определяющий API для объектов, которые действуют как заместители для других объектов или для объектов, которые еще не существуют. Обычно сообщение прокси пересылается реальному объекту или заставляет прокси загружать (или преобразовывать себя в) реальный объект. Подклассы NSProxy могут использоваться для реализации прозрачного распределенного обмена сообщениями (например, NSDistantObject) или для ленивого создания экземпляров объектов, создание которых требует больших затрат.
NSProxy реализует основные методы, необходимые для корневого класса, включая методы, определенные в протоколе NSObject. Однако как абстрактный класс он не предоставляет метод инициализации и вызывает исключение при получении любого сообщения, на которое не отвечает. Поэтому конкретный подкласс должен предоставлять метод инициализации или создания и переопределять методы forwardInvocation: и methodSignatureForSelector: для обработки сообщений, которые он сам не реализует. Реализация forwardInvocation в подклассе: должна делать все, что необходимо для обработки вызова, например пересылать вызов по сети или загружать реальный объект и передавать ему вызов. methodSignatureForSelector:требуется для предоставления информации о типе аргумента для данного сообщения; реализация подкласса должна иметь возможность определять типы аргументов для сообщений, которые он должен пересылать, и должна соответствующим образом создавать объект NSMethodSignature. См. Спецификации классов NSDistantObject, NSInvocation и NSMethodSignature для получения дополнительной информации.