NSCollectionView
имеет делегата, который должен соответствовать NSCollectionViewDelegate
.
- (id < NSCollectionViewDelegate >)delegate
У меня есть новый протокол, который расширяет NSCollectionViewDelegate
.
@protocol extendedProtocol <NSCollectionViewDelegate>
Теперь в классе контроллера моего CollectionViewItem я пытаюсь вызвать метод делегата следующим образом:
if (
[self collectionView]
&& [[self collectionView] delegate] &&
[[[self collectionView] delegate] conformsToProtocol:@protocol(extendedProtocol)]
)
{
BOOL flag = [[[self collectionView] delegate] doSomeWork:@"abc"];
}
Я получаю предупреждение о том, что «метод экземпляра doSomeWork:« не найден ».
Я пытался сделать
id <extendedProtocol> dg = [[self collectionView] delegate];
BOOL flag = [dg doSomeWork:@"abc"];
Но затем я получаю предупреждение: «Несовместимые типы указателей, инициализирующие« id »выражением типа« id ».
Как правильно изменить протокол делегата NSCollectionView?