-1

ビューコントローラーへのポインターとしてselfを使用して、別のクラス(nsobjectクラス)のプロパティにselfを割り当てようとしていますが、プロパティは常にnilです。なぜ、またはどのように修正できるか知っている人はいますか?

viewcontroller.m

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

SecondClass.h:

NSObject クラス:

.h ファイル

#import "ViewController.h"

@class ViewController;

@interface SecondClass : NSObject
{
    ViewController *viewController;
}

@property (nonatomic,retain) ViewController *viewController;
4

1 に答える 1

2

init メソッドを追加してみませんか。

-(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 を使用します。

それが役に立てば幸い。

于 2013-08-19T20:39:16.973 に答える