Унаследуют ли классы протоколы в target-c? - PullRequest
0 голосов
/ 20 мая 2011

У меня есть класс, который реализует протокол.В MyProtocol у меня есть два свойства:

@protocol MyProtocol <NSObject>
    @property(nonatomic, retain) NSObject *stuff;
    @property(nonatomic, retain) NSString *stringStuff;
@end

Мой класс реализует протокол, как показано

Заголовок .h

@interface MyClass : UIViewController <MyProtocol>
...

Реализация.m

@implementation MyClass
    @synthesize stuff;
    @synthesize stringStuff;
...

У меня есть класс, который наследуется от MyClass ...

@interface MySubClass : MyClass

Когда я пытаюсь получить доступ к вещи и stringStuff в MySubClass, я получаю сообщение об ошибке, в котором говорится, что MySubClass не имеет члена с именем 'stringStuff. '

Как получить от дочерних классов доступ к этим членам родительского класса?

Ответы [ 2 ]

0 голосов
/ 09 июня 2011

Вместо того, чтобы пытаться получить доступ к ivars напрямую из суперкласса, используйте методы доступа: например.self.stuff и self.stringStuff вместо вещи и stringStuff.Надеюсь, это поможет.

-R

0 голосов
/ 20 мая 2011

Вам нужно будет использовать доступ к свойству в подклассе, пытались ли вы получить прямой доступ к ивару?

Редактировать: Только что понял, что я не ответил на ваш первоначальный вопрос.Да, если суперкласс реализует протокол, то и подкласс тоже будет.

...