1

blackview が常に null になるのはなぜですか?

@property (strong, nonatomic) UIView *blackView;

[_blackView setFrame:self.view.bounds];
[_blackView setBackgroundColor:[UIColor colorWithWhite:0 alpha:0.8]];
[self.view addSubview:_blackView];
 NSLog(@"%@", _blackView);  // i get null

以前は alloc init を使用してインスタンス化していましたが、メソッド間でこのビューにアクセスする必要があるため、プロパティとして使用しています

4

4 に答える 4

1

オブジェクト(UIView)に何かをする前に。そのためのメモリを割り当て、いくつかの初期化を行う必要があります。alloc および init メソッドを使用します。お気に入り:

UIView *blackView = [[UIView alloc] initWithFrame:CGrectMake( , , , )];
于 2013-07-25T05:48:32.490 に答える
0
@property (strong, nonatomic) UIView *blackView;

これで が作成されましたdecalaration。しかし、それはあなたがそれに割り当てたという意味ではありませんmemory

allocate memory実装ファイルでは、それを行う必要がありますinitialise。XCode バージョン 6 以降を使用している場合、プロパティを合成する必要はありません。これは Xcode 自体によって行われるためです。それ以外の場合は、プロパティを統合する必要があります。

@synthesize blackView;

self.blackView = [UIView alloc]initWithFrame:self.view.bounds];

また、nib ファイルがあり、そこに既に を追加していて、それUiViewを自分のものにしたい場合は、nib ファイルから .h ファイルへblackViewの接続を作成する必要があります。IBoutletこの場合、UIView オブジェクトに記憶する必要はありinitialiseません。allocateそれはそれ自体で行われiOS SDkます。

于 2013-07-26T12:11:47.727 に答える