我遇到了最奇怪的错误,我希望有人可以帮助我。
这是我创建视图控制器并将其推送到 navigationController 时的代码。
问题是将随机变量传递给新的视图控制器。我尝试在 init 方法中传递它,并使用下面注释的行传递它。
MultipleBet *multipleBet = [[MultipleBet alloc] initWithMaxNumber:numbers andMaxStars:stars andRandom:self.random];
NSLog(@"RANDOM1: %d", self.random);
//[multipleBet setRandom:self.random];
UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] init] autorelease];
backButton.title = @"Voltar";
self.navigationItem.backBarButtonItem = backButton;
[self.navigationController pushViewController:multipleBet animated:YES];
[multipleBet release];
但是,当我访问 MultipleBet 的 viewDidLoad 中的随机变量时,它始终为 FALSE。
这是 MultipleBet 的代码:
- (id)initWithMaxNumber:(int)maxNumbers andMaxStars:(int)maxStars andRandom:(BOOL)isRandom {
self = [super initWithNibName:@"MultipleBet" bundle:[NSBundle mainBundle]];
...
self.random = isRandom;
NSLog(@"RANDOM2: %d", self.random);
NSLog(@"RANDOM2.1: %d", isRandom);
return self;
}
这是 viewDidLoad 的代码:
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"RANDOM2.2: %d", self.random);
}
我这样声明变量和属性:
BOOL random;
@property (nonatomic) BOOL random;
并且输出始终是:
随机2.2:0
随机2:1
随机2.1:1
随机1:1
为什么 viewDidLoad 中的 NSLog 在所有其他日志之前输出?它应该是最后一个......难道是因为我自定义的init方法?我称之为[super init],所以这应该不是问题......