2013-08-19 3 views
-1

Я пытаюсь присвоить себя свойству в классе antoher (класс nsobject), используя self как указатель на контроллер вида, но свойство всегда равно nil. Любой из вас знает, почему и как я могу исправить?ios присваивать self свойству другому классу

viewcontroller.m

-(void)startToDoSomething:(NSString*)testToRun 
{ 
    SecondClass *secondClass = [[SecondClass alloc] init]; 
    secondClass.viewController = self; 
    [secondClass doSomething]; 
} 

SecondClass.h:

NSObject Classe:

.h файл

#import "ViewController.h" 

@class ViewController; 

@interface SecondClass : NSObject 
{ 
    ViewController *viewController; 
} 

@property (nonatomic,retain) ViewController *viewController; 
+0

Как 'viewController' объявлен/реализован в' SecondClass'? –

+0

secondClass объявляет (#import secondClass), и свойство объявляется во второмClass.h – HelenaM

+0

У меня было добавлено содержимое secondclass.h – HelenaM

ответ

2

Почему бы вам не добавить метод инициализации:

-(id)initWithViewController:(ViewController *)aViewController 
{ 
    self = [super init]; 

    if(self) 
    { 
      self.viewController = aViewController; 
    } 

    return self; 
} 

Тогда вы можете просто назвать это как этот

SecondClass *secondClass = [[SecondClass alloc] initWithViewController:self]; 

Вы также можете изменить свойство (nonatomic, assign) и изменить синтезируют в @synthesize viewController = _viewController

Внутри SecondClass вы используете _viewController.

Надеюсь, это поможет.

Смежные вопросы