2012-01-17 3 views
-1

Скажем, например, я объявил протокол в одном классе и хочу, чтобы он вызывался в разных классах. Является ли это возможным.Как вызвать метод протокола в другом классе

@protocol testProtocol 
@required 

- (void) showTestProtocol:(Call *)callObject; 

@end 

@interface TestClass1 : UITableViewController { 
     id<testProtocol> delegate; 

} 
@property (nonatomic, retain) id delegate; 

в классе реализации

@synthesize delegate; 

На самом деле другой класс имеет определение метода, объявленного в протоколе. Теперь, как я могу использовать этот протокол в другом классе для вызова этого метода ?. Мне нужно, чтобы все остальные классы использовали этот метод.

Заранее спасибо

+1

Я не понимаю, какой объект должен называть какой метод на каком объекте? В классе, который подтверждает протокол, вы можете вызывать этот метод из протокола, как класс, который сам определил этот метод. – V1ru8

+1

Я не думаю, что вы полностью и правильно понимаете концепцию протоколов. Пожалуйста, прочитайте документацию разработчика Apple и более четко перепишите свой вопрос. – Greg

+0

Также убедитесь, что вы не создаете цикл сохранения, сохраняя делегата - обычно делегат назначается и не сохраняется! – Till

ответ

0

Если вы хотите использовать методы, объявленные в этом протоколе из другого класса (скажем CLASSA), вы сначала импортировать заголовочный файл (.h), в котором определен данный протокол. И тогда ClassA должен соответствовать протоколу. Если вы хотите, чтобы все классы могли реализовать этот метод, и вы не хотите явно подтверждать этот протокол, вам следует, вероятно, изучить использование неофициального протокола, в котором используются категории.

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