Как получить доступ к переменной суперкласса в подклассе - PullRequest
1 голос
/ 26 марта 2012

Я создал два класса viewController, так что один является суперклассом другого. У меня есть переменная nsstring в суперклассе, к которой я должен получить доступ в подклассе, пожалуйста, объясните мне, как это сделать. Вот мой код

  @interface Superclass : UIViewController{
  NSString *message
  }
  @property(nonatomic,retain)NSString *message;
  -(id)init;
  @end


 @implementation Superclass
 @synthesize message;
 -(id)init{
{
[super init];
message=@"Hello";
return self;

 }


  @interface Subclass : Superclass{

  }

 @end


 @implementation Subclass

 - (void)viewDidLoad {

   UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Alert" message:self.message delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
[alert release];
  [super viewDidLoad];


 }

Моя подсказка, но без сообщения.

Ответы [ 4 ]

3 голосов
/ 26 марта 2012

Как вы инициализируете Subclass?

Используя initWithNibName:bundle: метод?

В этом случае ваш суперкласс init метод не будет вызван.Поэтому переопределите метод initWithNibName:bundle: в суперклассе и установите значение переменной там.

0 голосов
/ 17 мая 2013

просто используйте

self.message = @ "что-то"

, члены суперкласса будут наследоваться объектом подкласса

0 голосов
/ 26 марта 2012

объявить переменную как общедоступную в суперклассе

чем

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Alert" message:message delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
0 голосов
/ 26 марта 2012

вы можете использовать super.variable для доступа к переменной суперкласса.

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