加载视图时NSInteger值更改

时间:2012-01-06 00:29:06

标签: iphone nsinteger

我的app委托中有一个名为healthInt的NSInteger。在app委托中,我将healthInt设置为100.当应用程序加载第一个视图时,healthInt仍然等于100.但是当它加载下一个视图时,healthInt设置为0.即使该视图控制器中有一个标签(标题为healthLabel)显示100.这是一个问题的原因是因为我想做的是

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

但这似乎不起作用。我知道这是糟糕的架构,但重做整个项目对我来说有点太晚了。如果您需要查看其他代码,我将很乐意向您展示:)

1 个答案:

答案 0 :(得分:1)

我同意这个评论。确保appDelegate属性不为null。如果是,你可以使用

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

再次获得它。

[编辑] 您必须将appDelegate强制转换为您的类类型才能从代理中获取“healthInt”。

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

[第二编辑] DUH!我没有在viewDidLoad中看到您的示例代码。热门舔是对的。您需要在视图控制器中设置委托才能调用它。

试试这个:

-(void)viewDidLoad{

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

希望这有帮助。

罗布