我有一种方法可以从int
healthInt
中减去2。然后,我有一个名为NSString
的{{1}},只显示healthString
。所以我想在这个方法healthInt
中做的是从take2Damage
中减去2。将名为healthInt
的{{1}}设置为UILabel
时。问题是healthLabel
位于另一个类中。这是一些代码。
Appdelegate.m
healthString
LevelOneViewController.m
healthLabel
答案 0 :(得分:1)
你的设计很缺乏,但是你去了:
self.healthLabel = (YourAppDelegate *)[[[UIApplication sharedApplication] delegate] healthString];
但我再次强调改变你的设计,不要在appDelegate中发生这种事情。考虑使用单例状态类型,这样做会更好,同时仍然保持简单。
编辑:
为了更清楚,这就是我了解你目前的情况。在AppDelegate
课程中,您已将healthInt
,healthLabel
定义为属性,并-(void)take2Damage
。 healthInt
存储玩家的健康状况,healthLabel
是该健康状况的用户友好字符串,take2Damage
从healthInt
中减去两次伤害。
您要从healthInt
,healthString
或take2Damage
访问另一个类。我们称之为GameViewController
。因此,无论您在GameViewController
中使用哪种方法,都应使用上述代码。
请注意,#import AppDelegate.h
.h
文件中的必须 GameViewController
。
绝对没有理由不这样做。只要您在AppDelegate
中定义了属性:
@property (nonatomic, assign) NSInteger healthInt;
@property (nonatomic, retain) NSString *healthString;
-(void)take2Damage;
和@synthesize
'他们,你应该好。