Я знаю, как сделать глобальную переменную, но всякий раз, когда я пытаюсь определить глобальную переменную с помощью функции случайного числа, xcode говорит: «элемент инициализатора не является постоянным» Компилятор не хочет создавать переменную из случайного числа, потому что функция случайного числа не является константой.
Как мне сгенерировать случайное число, а затем использовать одно и то же значение для более чем одного действия? (Например, чтобы определить цвет, а затем записать это значение в метку?)
Код:
#import "Slider_with_IBAppDelegate.h"
float * const hue = ((arc4random() % ((unsigned)100 + 1))/100.0);
//^this is where I get the error: "initializer element is not constant"
@synthesize label
//write value to label
- (IBAction) doButton {
label.text = [NSString stringWithFormat:@"%f", hue];
}
//set background color
- (void)applicationDidBecomeActive:(UIApplication*)application
{
self.label5.backgroundColor = [UIColor colorWithHue:hue
saturation:1.0
brightness:1.0
alpha:1.0];
}
---- редактировать ------
Спасибо за предложения. Это все еще не работает для меня, однако, что я делаю неправильно?
Новый код:
#import "Slider_with_IBAppDelegate.h"
float const hue = ((arc4random() % ((unsigned)100 + 1))/100.0);
//^I still get the error: "initializer element is not constant."
@synthesize label
//write value to label
- (IBAction) doButton {
label.text = [NSString stringWithFormat:@"%f", hue];
}
//^this is where I get the error "'hue' undeclared (first use of this function)"
//set background color
- (void)applicationDidBecomeActive:(UIApplication*)application
{
hue = ((arc4random() % ((unsigned)1000 + 1))/1000.0);
/*here I get the error "assignment of read-only variable 'hue.'"
If I insert "float" just before hue, I do not get this error,
but it still won't compile because of the error above.*/
self.label5.backgroundColor = [UIColor colorWithHue:hue
saturation:1.0
brightness:1.0
alpha:1.0];
}