2010-02-11 2 views
-1

Как назначить объект интерфейса объекту протокола? У меня есть протокол A и protocolB. все методы обоих протоколов реализованы в MyClass. Как ограничить доступ только к методам methid и protocolB протокола? Кодирование выполняется в Objective-C для приложения iPhone.Как назначить объект одного класса другому в Objective-C?

ответ

2

О создании объекта вы можете просто сделать это:

id <protocolA> protocolAObject = [[MyClass alloc] init]; 

Теперь, если вы не используете явное приведение, вы не можете использовать методы protocolB.

Вы также можете бросить объекты класса MyClass либо protocolA или protocolB так:

MyClass *myClassObject = [[MyClass alloc] init]; 
id <protocolB> protocolBObject = (id <protocolB>) myClassObject; 
+0

... эй написал код в MyClass и назначили его OBJ из protocolB. но с помощью объекта [protocolBobject] протоколаB я также могу получить доступ к методам других протоколов :(. Но это не должно быть правильно? – suse

+1

Невозможно полностью заблокировать методы. Но если вы пытаясь вызвать методы protocolA, на объекте protocolB, вы должны получить предупреждения компилятора. –

+0

ok ... но я могу получить доступ: (... дать мне хорошие ссылки для чтения о его синтаксисе или ссылки на пример программы – suse

Смежные вопросы