Возврат / Передача ссылки в качестве протокола - PullRequest
0 голосов
/ 22 марта 2011

Дано

@protocol Person<NSObject>

@interface Greek : NSObject <Person> 

Можно ли определить метод как

+(id<Person>)newGreek{
return [[Greek alloc] init];        
}

и использовать тип возвращаемого значения как

id<Person> person = [Persons newGreek];

Или вызвать метод

Greek *greek = [[Greek alloc] init];
[self talk:greek];

, который определяется как

-(void)talk:(id<Person>)person

Если нет, каковы альтернативы?

1 Ответ

1 голос
/ 22 марта 2011

Да, вы можете.В Протоколы на языке программирования Objective-C раздел Проверка типов специально показывает первую форму, а вторая работает также, даже если она не указана на этой странице.Объявление протокола (<Person>) - это модификатор типа, который можно использовать с любым объектом target-c, то есть его можно использовать везде, где вы определяете тип объекта.

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