У меня есть класс, как так:Определить класс объекта из идентификатора <protocol>
@interface Foo : NSObject <FooDataProvider>
...
@end
и где-то вдоль линии в другом классе у меня есть метод, с помощью интерфейса:
-(void) doStuff:(id<FooDataProvider>)fooProvider{
...
}
И еще Где-то еще у меня есть
-(void) passMeClasses:(Class)theClass
{
<do stuff based on the class>
}
Обычно я передать вещи в этот метод просто нравится
Foo* f = [[Foo alloc] init];
...
[bar passMeClasses:[f class]];
Но я не уверен, как передать то, что я только иметь идентификатор .. как так
id<FooDataProvider> f = [[Foo alloc] init];
....
[bar passMeClasses:[f ?????]];
или в качестве альтернативы, как это сделать из метода DoStuff
-(void) doStuff:(id<FooDataProvider>)fooProvider{
Class c = [fooProvider howDoIGetMyClass];
bar passMeClasses:c];
}
Может кто-то Помогите мне в определении класса из id?
Извините за длительное объяснение, но, надеюсь, его ясно!
Обновите свой вопрос декларацией 'FooDataProvider'. – rmaddy