Почему значение свойства сохраняется при повторном вызове viewDidLoad - PullRequest
0 голосов
/ 23 октября 2018

У меня есть свойство в классе, значение по умолчанию которого равно false

@implementation viewController1

BOOL variable1 = false;

Когда viewDidLoad первый вызов.Его значение ложно.Затем я изменяю его на true в методе.В следующий раз, когда viewDidLoad вызвал значение variable1, было 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;

1 Ответ

0 голосов
/ 23 октября 2018

Это не свойство (или переменная экземпляра) в классе.Это глобальная переменная в файле.

Переменные экземпляра должны быть в фигурных скобках:

@implementation viewController1 {
    BOOL variable1 = false;
}

- (void)viewDidLoad {
    // code
}

@end

Без фигурных скобок variable1 - это просто глобальная переменная, которая не имеет ничего общего сделать с экземплярами класса.Вот почему он, кажется, сохраняет свое старое значение при создании нового контроллера представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...