Расширение протокола из класса с категориями в target-c - PullRequest
2 голосов
/ 16 сентября 2010

Вот что я пытаюсь сделать:

id<MyDelegate> _delegate;
....
[_delegate performSelectorOnMainThread...]

@protocol MyDelegate <NSObject>
....

Моя проблема в том, что executeSelectorOnMainThread определен в категории NSObject, поэтому компилятор его не распознает. Я получил: "warning: '-performSelectorOnMainThread: withObject: waitUntilDone:' не найден в протоколе (ах)" Я мог бы бросить делегата, но это противоречит цели делегата. Есть предложения?

1 Ответ

5 голосов
/ 16 сентября 2010

Объявите вашего делегата как NSObject<MyDelegate> * _delegate;.

Это говорит компилятору, что _delegate должен быть экземпляром NSObject или подклассом, который должен отвечать требованиям протокола MyDelegate.

...