这个问题与这个有关。我有两个构造函数:
- (id)initWithBanner:(NSMutableArray *)banners {
if ( self = [super initWithNibName:@"UIBanner" bundle:nil] ) {
testString = [[NSString alloc] initWithString:@"Banner"];
NSLog(@"Foo");
}
return self;
}
- (id)initWithPreview:(NSMutableArray *)previews {
if ( self = [super initWithNibName:@"UIBanner" bundle:nil];
testString = [[NSString alloc] initWithString:@"Preview"];
NSLog(@"Foo");
}
return self;
}
- (void)viewDidLoad {
NSLog(@"%@", testString);
}
在另一个对象中,我有两个名为 *bannerPreview 和 *bannerVideo 的类实例,用 initWithPreview 和 initWithVideo 进行了初始化。这里发生了什么:在预览构造函数中,我无法访问 IBOutlets,因为它们是 nil,而它们不在横幅中。但是bannerVideo的方法viewDidLoad在构造函数完成之前被调用,而bannerPreview的viewDidLoad没有。我在类中添加了一个字符串测试,并在上面列出的两种方法中添加了一个 NSLog(@"Foo") ,我的输出是:
2011-03-15 12:29:13.929 iUDC[2600:207] Foo
2011-03-15 12:29:13.934 iUDC[2600:207] preview
2011-03-15 12:29:15.038 iUDC[2600:207] (null)
2011-03-15 12:29:15.038 iUDC[2600:207] Foo
我应该如何处理这种行为?