У меня есть метод, который вызывается каждый раз, когда изменяется элемент управления моего представления, и он должен обновить UILabel
. Он имеет два UITextField
с и два UISlider
с. Сначала я проверяю, являются ли какие-либо из UITextField
пустыми, и если да, советую их заполнить. В противном случае я получаю разницу между значениями UITextField
s и генерирую пару float
s. использовать в моих NSString
с.
Я получаю предупреждение о том, что message
не используется, и я получаю сообщение об ошибке NSString
s (сейчас не могу вспомнить, что именно - я не на своем Mac ...)
И даже когда я свел сообщения к чему-то простому, что сработало, когда delta == 0
, оно отправляет сообщение delta <= 0
.
О, и строки не помещают значения в то место, где находятся знаки %
, они просто печатают знаки %
.
Я слишком долго взламывал это, и мне нужна помощь ...
- (void)updateAdvice {
if ([chlorineSourceField.text isEqualToString:@""] || [poolVolumeField.text isEqualToString:@""]) {
NSString *message = [[NSString alloc] initWithString:@"Enter a chlorine source and pool volume."];
}
else {
int delta = [targetLabel.text intValue] - [startingLabel.text intValue];
float chlorineAmount = delta * [poolVolumeField.text intValue] * chlorineConstant;
float percentRemove = (1 - ([targetLabel.text floatValue] / [startingLabel.text floatValue]));
float gallonsRemove = percentRemove * [poolVolumeField.text intValue];
if (delta == 0) {
NSString *message = [[NSString alloc] initWithString:@"No adjustments necessary. You're on target"];
}
if (delta >= 0) {
NSString *message = [[NSString alloc] initWithFormat:@"To increase FC by %dppm, add %3.1f oz of %@.", delta, chlorineAmount, chlorineSourceField.text];
}
if (delta <= 0) {
NSString *message = [[NSString alloc] initWithFormat:@"You're above target already. Replace %d%% or %d gallons of water - or just wait for it to come down.", percentRemove*100, gallonsRemove];
}
}
adviceLabel.text = message;
[message release];
}