我在类中有一个属性,默认值为false
@implementation viewController1
BOOL variable1 = false;
viewDidLoad
首次通话时。其值为false。然后,我用一种方法将其更改为true。下次名为variable1
的viewDidLoad为true时。
但默认值为false。这意味着它保持了价值?
我可以修复它,但可以在viewDidLoad中初始化它,但我想知道原因。
我再次使用以下代码对其进行初始化:
UINavigationController *nc1;
ViewController1 * viewController1 = [[ViewController1 alloc] init];
UITabBarItem *tab1 = [[UITabBarItem alloc] init];
[tab1 setTitle: @”tab1”;
nc1 = [[UINavigationController alloc] init];
[viewController1 setTabBarItem:tab1];
nc1.viewControllers = [NSArray arrayWithObjects: viewController1, nil];
[navigations addObject:nc1];
tabController.viewControllers = navigations;
答案 0 :(得分:2)
那不是类中的属性(或实例变量)。这是文件中的全局变量。
实例变量必须用大括号括起来:
@implementation viewController1 {
BOOL variable1 = false;
}
- (void)viewDidLoad {
// code
}
@end
没有花括号,variable1
只是一个与类实例无关的全局变量。这就是为什么在创建新的视图控制器时它似乎保持其旧值的原因。