2011-12-20 4 views
0

У меня есть и NSString, называемое «работоспособность», и у меня есть int, называемый «healthInt». Я делаю это в своих Appdelegates, потому что другим файлам необходимо получить к нему доступ. То, что я хочу сделать, - присвоить NSString «здоровье» значение «healthInt». Таким образом, в другом классе я могу установить метку на «здоровье» NSString и на ней будет отображаться «healthInt». Вот код, извините, что код не вставлен правильно.Отображение переменных int в NSString с [[NSString alloc] initWithString

Appdelegate.h 

@interface AppDelegate : UIResponder <UIApplicationDelegate>{ 
NSString * health; 
int healthInt; 
} 
-(void)take2Damage; 
-(void)tellHealth; 
@property (strong, nonatomic) UIWindow *window; 
@property (strong, nonatomic) ViewController *viewController; 
@property (nonatomic, retain) NSString * health; 
@end 

Appdelegate.m 

@synthesize health; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions 
{ 

health = [[NSString alloc]initWithString:@"%d", healthInt]; 

Но делать это дает мне ошибку «Слишком много аргументов для вызова метода, как ожидается 1, есть 2»

Я любитель объективные с так пытаюсь объяснить это просто :)

Спасибо!

ответ

4

Вы хотите, чтобы -initWithFormat: вместо -initWithString:.

+3

Имена методов: 'initWithFormat:' и 'initWithString:'. Двоеточие делает мир различием. – dreamlax

+0

Это сработало, но теперь у меня есть метод «take2Damage». Это просто вычитает 2 из healthInt, когда он что-то наносит. Я сделал метод, который делает это, и я вызываю этот метод в другом классе, используя [appDelegate take2Damage], но метка не обновляет количество оставшихся здоровья. И у делегата приложения у меня есть healthInt = 100 –

Смежные вопросы