首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换-展开可选值

转换-展开可选值
EN

Stack Overflow用户
提问于 2014-10-28 20:11:37
回答 1查看 107关注 0票数 1

我正在编写一个体重指数计算器

代码语言:javascript
复制
@IBOutlet var height: UITextField!
@IBOutlet var weight: UITextField!    
@IBOutlet var message: UILabel!    
@IBAction func keyPressed(sender: AnyObject) {

    var peso = Double(weight.text.toInt()!)
    var altura = Double(height.text.toInt()!) //ERROR LINE
    var alturaquad = Double(peso) * Double(peso)  //EXPONENTIAL
    var imc = altura / alturaquad
    message.text = "Your BMI is \(imc)"
}

我得到了以下错误,但我还不明白:

代码语言:javascript
复制
fatal error: unexpectedly found nil while unwrapping an Optional value

我的第二个问题是关于指数函数。是豆瓣吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-28 20:22:56

toInt()方法String返回一个可选整数,即如果字符串到int的转换成功,则返回有效整数;如果转换失败,则返回nil

在此:

代码语言:javascript
复制
height.text.toInt()!

您正在使用强制展开运算符,它从可选变量中解锁整数,假设它不是零-如果可选值实际上是nil,则会出现错误。

选项、强制展开和像您这样的错误都是堆栈溢出的反复问题。我建议你仔细阅读选项。这在概念上很简单,但也有很多令人头疼的地方--对于任何一个快速开发人员来说,全面了解它们的工作方式是必不可少的。提示:使用可选绑定解决问题。

至于你的第二个问题,关于pow:你试过吗?创建一个操场并测试它--如果它不起作用,就问一个新的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26617589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档