Значение NSInteger изменяется при загрузке представления - PullRequest
0 голосов
/ 06 января 2012

У меня есть NSInteger в моем делегате приложения с именем healthInt.В делегате приложения у меня установлено значение healthInt, равное 100. И когда приложение загружает первое представление, healthInt по-прежнему равно 100. Но когда оно загружает следующее представление, healthInt устанавливается в 0. Даже если в этом контроллере представления отображается меткаhealthLabel) отображает 100. Причина, по которой это проблема, заключается в том, что я хочу сделать

-(void)viewDidLoad{
   if(appDelegate.healthInt <= 0){
   healthLabel.text = @"Dead";
  }
}

Но, похоже, это не работает.И я знаю, что это плохая архитектура, но мне уже слишком поздно переделывать весь проект.Если вам нужен другой код, я буду рад показать его вам:)

1 Ответ

1 голос
/ 06 января 2012

Я согласен с комментарием. Убедитесь, что свойство appDelegate не равно нулю. Если это так, вы можете использовать

id<UIApplicationDelegate> appDelegate = [UIApplication sharedApplication].delegate 

чтобы получить его снова.

[Изменить] Вам нужно будет привести appDelegate к вашему типу класса, чтобы получить «healthInt» от делегата.

MyAppDelegate *myApp = (MyAppDelegate *)[UIApplication sharedApplication].delegate

[2nd Edit] ДУХ! Я не видел ваш пример кода в вашем viewDidLoad. Hot Licks это правильно. Вам нужно установить делегат в контроллере представления, прежде чем вы сможете его вызвать.

Попробуйте это:

-(void)viewDidLoad{

appDelegate = [[UIApplication sharedApplication] delegate];
     if(appDelegate.healthInt <= 0){
     healthLabel.text = @"Dead";
    }
    }

Надеюсь, это поможет.

Rob

...