gpt4 book ai didi

iphone - 困惑的方法 - if/then 结构和字符串操作问题

转载 作者:行者123 更新时间:2023-12-03 20:58:17 26 4
gpt4 key购买 nike

我有一个方法,每当我的 View 上的控件发生更改时都会调用该方法,并且应该更新 UILabel 。它有两个UITextField一个和两个UISlider s。首先,我检查是否有 UITextField s 为空,如果是,请建议它们需要填写。否则我会得到 UITextField 之间的区别s' 值并生成几个 float在我的 NSString 中使用s。

我收到一条警告: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];
}

最佳答案

您缺少 else 部分,因此所有三个 if 语句都会连续计算。如果delta == 0,它将满足所有三个if语句。因此,最后的分配将覆盖前两个。 (你会泄漏内存)

此外,您的 message 变量的作用域是其声明的 if block 的本地范围。您可能希望在函数级别范围内移动 message 声明。

% 不起作用而言,您正在使用实例初始值设定项 initWithFormat使用类初始值设定项的语法 stringWithFormatinitWithFormat 在单独的参数 - arguments: 中获取格式化字符串的参数。 (顺便说一句,它还需要 locale:)

关于iphone - 困惑的方法 - if/then 结构和字符串操作问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3311486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com