【问题标题】:Obj-C Text fields, float values and SIGBARTObj-C 文本字段、浮点值和 SIGBART
【发布时间】:2013-01-05 01:22:47
【问题描述】:

我正在编写一个 iOS 应用程序,用于(在许多功能中)为家庭酿酒师计算发酵前后糖的酒精含量。现在的问题是;每次我在模拟器中运行我的应用程序时,一旦我使用此函数中使用的文本字段、标签和按钮(在实现中)进入 UIViewController,它就会因“线程 1:信号 SIGBART”而崩溃:

- (IBAction)calcAlc:(id)sender {
double ogVal = [[oGtext text]floatValue];
double fgVal = [[fGtext text]floatValue];

double alcoContent = ((1.05*(ogVal-fgVal))/fgVal)/0.79;

NSString *theResult = [NSString stringWithFormat:@"%1.2f",alcoContent];

alcContent.text = theResult;

}

我真的被困在这里 - 非常感谢任何帮助。提前致谢!

【问题讨论】:

  • 在 Objective-C 异常上启用断点并在您正在使用的方案中打开僵尸。这些步骤可能会为您提供更好的调试信息。
  • 转到XCode中的断点导航器,点击'+'按钮,Add Exception Breakpoint, Exception All, Break On Throw。现在尝试再次调试程序。
  • 谢谢你们!我会试试这个:)

标签: objective-c ios nsstring


【解决方案1】:

您应该检查 fgVal 是否曾经是 0,因为您正在除以 fgVal。

您还需要使用doubleValue 而不是floatValue,因为您将它们声明为double

【讨论】:

  • 除以零是一个不错的猜测。 +1。他必须在文本字段中使用合理的数据进行了测试,所以我也打赌没有设置文本字段出口,所以文本回答 nil 和 floatValue 回答 0.0。
  • 感谢您的回答!我仍然没有让它工作——即使注释掉所有代码并在函数内添加一个“alcContent.text = @”Hello””使它成为 SIGBART。回答上面的评论:我的界面中有这个:(at)property (weak, nonatomic) IBOutlet UITextField *oGtext; (at)property (weak, nonatomic) IBOutlet UITextField *fGtext; (at)property (weak, nonatomic) IBOutlet UILabel *alcContent;我在实现中综合它们。
  • 这很有趣@HenrikHillestadLøvold。问题一定出在其他地方。请采纳 Daniel Martin 的建议并添加异常断点。
【解决方案2】:

我认为您应该尝试使用 float 代替 double。 现在在每个方法上设置断点并对其进行调试以获取应用程序崩溃的确切点,然后您将能够找到解决方案。 还要确保连接故事板或 nib 中的每个 ib 插座和动作(无论您使用什么)。

如果有效请通知..:)

【讨论】:

  • 嘿,我已经调试了一段时间,这一切都归结为这个错误,无论我做什么(即使我注释掉了标头和实现中的所有属性和方法!):由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]:此类与键 alcContent 的键值编码不兼容。”你知道这意味着什么吗?感谢您的回答,@Ashu :)
  • 我不认为它们是任何键值对或任何类似的东西会使您的应用程序崩溃尝试找到应用程序崩溃的确切点..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
相关资源
最近更新 更多