Вызов протоколов из фреймворка? - PullRequest
0 голосов
/ 30 декабря 2011

В настоящее время я использую движок NinevehGL для разработки простого приложения. У этого движка есть класс NGLMesh, в котором хранятся данные openGL для экземпляра этого класса. Из документации NinevehGL для метода copyInstance, расположенного по адресу http://nineveh.gl/docs/Protocols/NGLCopying.html, говорится:

"NGLCopying является расширением протокола какао NSCopying.

Он определяет два основных режима копирования в объекты NinevehGL:

Copy: Makes a new clone, copying all the used memory.
Copy Instance: Makes a new clone, but clonning just the superficial memory."

Я хотел бы скопировать один из моих NGLMesh в новый экземпляр NGLMesh, используя этот метод, однако мне трудно понять протоколы и как их вызывать. Может ли кто-нибудь предложить какое-нибудь объяснение? Пока что Интернет немного сбивает с толку.

Исходя из того, что я понял (хотя я, скорее всего, ошибался), мне нужно "принять" протокол NGLCopying в классе, с которым я хочу его использовать. Кажется, я не могу найти много информации о том, как этого добиться.

1 Ответ

0 голосов
/ 30 декабря 2011

Протокол - это просто список сообщений, на которые может ответить класс. Думайте об этом как о расширении блока класса @interface, только он может использоваться несколькими классами. Если вы просто пытаетесь скопировать другой класс, который уже соответствует этому протоколу (например, NGLMesh), вам не нужно делать ничего особенного - просто выполните [yourNGLMeshObject copy] или [yourNGLMeshObject copyInstance].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...