0

次のような関数をオーバーライドする多くのメソッドがあります。

- (void)viewDidLoad
{
    [super viewDidLoad];
}

super親クラスの関数を呼び出していますが、自己はどこに割り当てられていますか?

4

4 に答える 4

1

self「現在のオブジェクト」へのポインターであり、通常の初期化式で割り当てられます。

NSObject *foo = [[NSObject alloc] init];

を呼び出すと[NSObject alloc]、後で として参照するオブジェクトがクラスによって作成されselfます。

于 2013-03-26T09:16:53.077 に答える
0

このように nib でクラスを初期化するときはいつでも:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

または単に自己が割り当てられるように初期化します

于 2013-03-26T09:16:11.690 に答える
0

基本的に、次のように init 関数で初期化されます。

- (id) init
{
  self = [super init];
  return self;
}
于 2013-03-26T09:16:14.577 に答える
0

ここ

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  

これは自己に価値を割り当てることです

クラスを呼び出すと、allocそのスーパークラスinitメソッドにアクセスして自分自身に渡します。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self)
    {

    }
    return self;
}
于 2013-03-26T09:16:21.657 に答える